2017-11-21 4 views
0

나는 html과 javascript를 사용하여 브라우저에서 XSLT 변환을 수행하는 데 어려움을 겪고 있습니다. 여기 내가 원하는 것입니다. (그리고 나는 단지 그것을 작동시킬 수 없습니다).TextArea에서 XML에 XSLT 변환을 수행하는 방법

1) XSLT 변환을 사용하여 파일 (예 : xslt)로 사용할 수 있으며 HTML (HTML)에 임베드 할 수 있습니다. 정적입니다.

2) 사용자가 XML을 텍스트 영역에 입력하려고합니다.

3) 사용자가 버튼을 누른 다음 XSLT가 발생하고 결과 (html)가 새 탭에 표시되기를 원합니다.

도움 주셔서 감사합니다.

+0

그리고 우리가 정확히 ... 무엇을 도와 드릴까요? –

+0

우리에게 어떤 방식으로 작동하지 않았는지 보여주고 우리가 잘못한 것을 말할 수 있습니다. 일반적으로 사람들에게 코드를 처음부터 작성하도록 요청하는 것보다 효과적입니다. (덧붙여 말하자면, 간단한 Javascript API를 사용하여 브라우저가 제공하는 것보다 최신 XSLT 구현을 원하면 Saxon-JS를 살펴보십시오.) –

답변

0

마지막으로 내 자신의 자바 스크립트가 작동합니다. 여기 그것을 필요로하는 사람을위한 것입니다.

/** 
* 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); 
    } 
}