我正在编写用于转换XML文档的Web应用程序,我需要将转换脚本的输出附加到任何变量。
我的问题是,输出是DOM,我需要把它变成变量。 我尝试了var x.appendChild(result),但它不起作用。怎么做?
抱歉我的英文不好:)
编辑:
Okey,这是我的代码:
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页面,但我需要显示带标签的完整文本。
我的想法是把结果发给了textarea。它会吵架,文字会显示,但没有标签。我试过用
var t=document.createTextNode(result);
document.getElementById("result").appendChild(t);
但我收到错误消息......像[object DocumentFragment]。 有任何想法吗?下一个变量只是我的实验,不是好方法。
答案 0 :(得分:0)
这是你的意思吗?
var xml;
xml = '<someElement>SomeValue</someElement>';
document.body.innerHTML += xml;
或更一般地说:
var xml;
// function definition
function addToDOM (xml, output) {
output.innerHTML = output.innerHTML || "";
output.innerHTML += xml;
return output;
}
// example usage
xml = '<someElement>SomeValue</someElement>';
addToDOM(xml, document.body);