1

我的任务是将 XML 文件分成两部分以便于编辑。

但是所有现有的代码库都旨在将其视为单个文件。

作为中间立场(由于时间不足),我决定拆分文件,但只需使用以下代码连接拆分文件

    var xmlDoc;
    xmlhttp.open("GET","distributome-relations.xml",false);
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;
    xmlhttp=createAjaxRequest();
    xmlhttp.open("GET","distributome-references.xml",false);
    xmlhttp.send();
    xmlDoc = xmlDoc+xmlhttp.responseXML;
            try{
        DistributomeXML_Objects=xmlDoc.documentElement.childNodes;
    }catch(error){
        DistributomeXML_Objects=xmlDoc.childNodes;
    }

原始代码似乎不起作用

xmlhttp.open("GET","Distributome.xml",false);
    xmlhttp.send();
    if (!xmlhttp.responseXML.documentElement && xmlhttp.responseStream)
        xmlhttp.responseXML.load(xmlhttp.responseStream);
    xmlDoc = xmlhttp.responseXML;
    try{
        DistributomeXML_Objects=xmlDoc.documentElement.childNodes;
    }catch(error){
        DistributomeXML_Objects=xmlDoc.childNodes;
    }

工作得很好。

我不确定如何进行此操作。

我只是拆分了文件

http://www.distributome.avinashc.com/avinash/Distributome.xml进入

http://www.distributome.avinashc.com/avinash/distributome-relations.xmlhttp://www.distributome.avinashc.com/avinash/distributome-references.xml

最后两个文件将出现格式不正确的情况,因为只有两个文件的简单连接才能成为有效的 XML 文档。

我怀疑这是由于使用了 responseXML 方法,我应该使用另一种方法。

有一个更好的方法吗。我会欢迎任何建议,当然 - 回答我原来的问题。

谢谢

4

1 回答 1

1

如果您解释了doesn't seem to work转换为的内容,这将有所帮助,但通过快速查看您的代码,我可以看出您正在尝试DOM Document使用+. 这一行:

xmlDoc = xmlDoc + xmlhttp.responseXML;

XHR的responseXML属性不会像您期望的那样返回字符串(顺便说一句,像这样连接两个 XML 文件很可能会导致格式不正确的 XML)。第二个示例正确对待它的本质 - DOM Document 对象。

responseXML 你可以在 MDN阅读更多关于over 的信息。如果服务器没有正确设置标头,请注意关于Content-Type以及如何在 XHR 上使用它以使其相信它从服务器接收到 XML 的注释。overrideMimeType()

要以支持 XML 的方式进行连接,您需要从第二个文档 ( document.documentElement)中获取importNode()根节点,使用appendChild()

于 2012-05-22T03:21:18.857 回答