【问题标题】:JavaScript - Variable and appendchildJavaScript - 变量和 appendchild
【发布时间】: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


【解决方案1】:

这是你的意思吗?

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);

【讨论】:

    猜你喜欢
    • 2013-08-13
    • 2011-08-04
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    相关资源
    最近更新 更多