2010-12-08 15 views
0

私はXSLでフォーマットされたXMLファイルを持っています。彼らはIE上で見栄えます。コントロールにXSLフォーマットのXMLを表示

ここでFlex(AIRではない)でどうやったらいいですか?データグリッドではなくTextAreaのようなものを使用したいと思います。

ありがとうございました。

答えて

0

私はJavaScriptを使って変換を行うことができると思います。私のFlexアプリケーションは、XMLとXSLのURLをJavaScriptに渡します。 JavaScriptはXML-XSL変換を行います。そして変換されたHTMLをFlexに渡して、FlexアプリケーションがTextArea(またはそれに類するもの)をポップアップして表示できるようにします。

私は近づいていると思います。しかし、現時点での問題は、変換されたHTMLが空/空であるようです。何か案は?

function loadXMLDoc(dname) 
{ 
    if (window.XMLHttpRequest) 
    { 
    xhttp=new XMLHttpRequest(); 
    } 
    else 
    { 
    xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xhttp.open("GET",dname,false); 
    xhttp.send(""); 
    return xhttp.responseXML; 
} 

function displayResult(xmlURL, xslURL) 
{ 
    //prepare xml and xsl 
    xml=loadXMLDoc(xmlURL); 
    xsl=loadXMLDoc(xslURL); 

    //get flash 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    var flashName = "index"; 
    var flashObject = (isIE) ? window[flashName] : document[flashName]; 

    // code for IE 
    if (window.ActiveXObject) 
    { 
    ex=xml.transformNode(xsl); 
    flashObject.GetTransformedHTML(ex); 
    } 
    // code for Mozilla, Firefox, Opera, etc. 
    else if (document.implementation && document.implementation.createDocument) 
    { 
    xsltProcessor=new XSLTProcessor(); 
    xsltProcessor.importStylesheet(xsl); 
    resultDocument = xsltProcessor.transformToFragment(xml,document); 
    document.getElementById("example").appendChild(resultDocument); 
    } 
} 

ありがとうございます。

0

解決策が見つかりました。

代わりのポップアップ(例えばIEで)とXSL-適用されるXMLを表示し、私はここで見つけコンポーネントとFlexでそれを表示することができます。以下は

http://code.google.com/p/flex-iframe/

0

サンプルで、かつ重要ここのものは下の行です。

CBSPopup.showNotification("stavka : " + stavka.toXMLString()); 

残りのコード:

if(children.length() > 0){ 
        var idPravila : String = [email protected][0]; 
        for each(var child:XML in children) { 
         var stavka : XML = <entity name="PopustBenzinskeStanice" 
              SCCode={[email protected][0]} 
              SubcompanyName={[email protected][0]} 
              SCCodeMedjusloj={[email protected][0]} 
              IdPravila={idPravila} 
             />; 
         CBSPopup.showNotification("stavka : " + stavka.toXMLString()); 
         _dataprovider.appendChild(stavka); 
        } 
        //if (poslovneJediniceGrid.dataProvider == null) { 
         poslovneJediniceGrid.DataProvider = _dataprovider.entity.(attribute("name") == "PopustBenzinskeStanice"); 
        //} 

        poslovneJediniceGrid.dataProvider.refresh(); 
       } 
我々は()機能 toXMLStringを使用する必要があります
関連する問題