在Javascript中将XML文档作为子文件添加到另一个节点

时间:2012-02-28 14:46:02

标签: javascript xml

我有一个问题:我正在使用Javascript XML。我想添加一个'父'节点 那个xml。 我该怎么做?

/* Load the XML text from the text area to a Javascript XML object */
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(taData.innerText);
xmlObj = xmlDoc.documentElement;        

/* Creating the Screen node */
var Screen = document.createElement("Screen");
Screen.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
Screen.setAttribute("xsi:noNamespaceSchemaLocation", "../../GUIGenerator_V2/Scheme/GG_Scheme.xsd");

/* Creating the Legend node */
var Legend = document.createElement("Legend");
Legend.setAttribute("EntityType", "Request");

var ImportedNode = document.adopteNode(xmlDoc.documentElement);
Legend.appendChild(ImportedNode);
Screen.appendChild(Legend);

Legend是Screen的孩子,我想让xmlDoc成为Legend的孩子。

我试过写:Legend.appendChild(xmlDoc.documentElement); 但得到一个错误。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

在某些情况下,XML在JavaScript中作为DOM引用,因此您可以在其上使用标准DOM函数。注意导航器的具体实现,以避免兼容性问题...

要添加父节点,您需要使用以下内容:

/* Load the XML text from the text area to a Javascript XML object */
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = "false";
    xmlDoc.loadXML(taData.innerText);
    xmlObj = xmlDoc.documentElement;        

    /* Creating the Screen node */
    var Screen = document.createElement("Screen");
    Screen.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
    Screen.setAttribute("xsi:noNamespaceSchemaLocation", "../../GUIGenerator_V2/Scheme/GG_Scheme.xsd");

    /* Creating the Legend node */
    var Legend = document.createElement("Legend");
    Legend.setAttribute("EntityType", "Request");

    var ImportedNode = document.adopteNode(xmlDoc.documentElement);    
    Legend.appendChild(ImportedNode);
    Screen.appendChild(Legend);

执行该代码后,您将获得一个结构如下的文档:

<fathernode>
  <YOURXMLDOCUMENT />
</fathernode>