2017-11-21 7 views
0

私はブラウザでXSLT変換を実行するのに苦労しています。これはhtmlとjavascriptを使用しています。ここに私が欲しいものがあります(そして私はそれを働かせることができません)。TextAreaからXMLにXSLT変換を実行する方法

1)XSLT変換があり、ファイル(xsltなど)として利用できるようにすることができます.HTMLに埋め込むことができます(静的です)。

2)ユーザーがXMLをテキスト領域に入力したいと思っています。

3)ユーザーがボタンを押して、XSLTを実行して結果(html)を新しいタブに表示したいとします。

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

+0

あなたは正確に何かを手伝ってほしいですか? –

+0

私たちに、うまくいかない方法を教えてくださいこれは通常、人々にコードを一から書くよう要求するより効果的です。 (ちなみに、単純なJavascript APIを使って、ブラウザで提供されているものよりも最新のXSLTを実装したい場合は、Saxon-JSを見てください)。 –

答えて

0

最後に、自分のjavascriptが動作するようにしました。ここは、それが必要な人のためのものです。

/** 
* Load an XML document from server 
* 
* @param filename  filename 
* 
* @return DOMDocument 
*/ 
function loadXMLDoc(filename) { 

    if ((window.ActiveXObject) || (!(window.ActiveXObject) && "ActiveXObject" in window)) { 
      xhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    else { 
     xhttp = new XMLHttpRequest(); 
    } 
    xhttp.open("GET", filename, false); 
    try { 
     xhttp.responseType = "msxml-document" 
    } 
    catch (err) { } // Helping IE11 
    xhttp.send(""); 
    return xhttp.responseXML; 
} 


/** 
* Text XML template: perform XSLT on user XML 
* 
*/ 
function testXMLTemplate() { 

    // create xml string from user xml in text area 
    var xmlstr = document.getElementById("test-xml").value; 
    xmlstr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + xmlstr; 

    // load XSLT doc 
    var xsldoc = loadXMLDoc("xml/paramToHtml.xslt") 

    if ((window.ActiveXObject) || (!(window.ActiveXObject) && "ActiveXObject" in window)) { 
     // code for IE 
     var xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0"); 
     xmldoc.async = false; 
     xmldoc.loadXML(xmlstr); 

     ex = xmldoc.transformNode(xsldoc); 
     var xmlTestWin = window.open(); 
     xmlTestWin.document.write(ex); 
    } 
    else if (document.implementation && document.implementation.createDocument) { 
     // code for Chrome, Firefox, Opera, etc. 
     var xmlparser = new DOMParser(); 
     var xmldoc = xmlparser.parseFromString(xmlstr, "text/xml"); 

     xsltProcessor = new XSLTProcessor(); 
     xsltProcessor.importStylesheet(xsldoc); 
     resultDocument = xsltProcessor.transformToDocument(xmldoc); 

     var xmlTestWin = window.open(); 
     xmlTestWin.document.write(resultDocument.firstChild.innerHTML); 
    } 
} 
関連する問題