【发布时间】:2013-12-12 20:48:12
【问题描述】:
我正在编写用于转换 XML 文档的 Web 应用程序,我需要将转换脚本的输出附加到任何变量。
我的问题是,输出是 DOM,我需要把它放到变量中。 我尝试了 var x.appendChild(result),但它不起作用。怎么做?
对不起我的英语不好:)
编辑:
好的,这是我的代码:
function transform(){
document.getElementById("result").innerHTML="";
var xml=editor.getValue();
var xsl=editor2.getValue();
var result = "XML and Query fields are required.";
if(xml && xsl){
if (window.DOMParser)
{
var parser=new DOMParser();
xmlDoc=parser.parseFromString(xml,"text/xml");
xslDoc=parser.parseFromString(xsl,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(xml);
xslDoc=new ActiveXObject("Microsoft.XMLDOM");
xslDoc.async="false";
xslDoc.loadXML(xsl);
}
try{
// code for IE
if (window.ActiveXObject)
{
result=xmlDoc.transformNode(xslDoc);
document.getElementById("result").innerHTML=result;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
result = xsltProcessor.transformToFragment(xmlDoc,document);
document.getElementById("result").appendChild(result);
}
}
catch(e){
result += e;
}
}
}
结果是由 XSL 文件转换的 XML 文档。 我需要将此代码的输出像纯文本一样放到网页上。这意味着带有 html 标签的代码。 在这种情况下是目标对象、结果、DIV,它显示格式化文本。就像一个 html 页面,但我需要显示带有标签的完整文本。
我的想法是把结果放到文本区域。它工作,文本将显示,但没有标签。我试过用
var t=document.createTextNode(result);
document.getElementById("result").appendChild(t);
但我收到错误消息...类似于 [object DocumentFragment]。 有任何想法吗?下一个变量只是我的实验,不是好办法。
【问题讨论】:
-
把它放在变量中是什么意思?您可以将 dom 元素存储在变量中。请向我们展示更多代码。你是怎么得到
result的?
标签: javascript xml appendchild