在javascript

时间:2015-12-05 11:40:02

标签: javascript xml xml-parsing xmlhttprequest

我在js文件中使用XMLHTTPRequest加载XML文档。 XML文件如下所示:

  <?xml version="1.0" encoding="utf-8"?>
  <RMFSFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Host>www.example.com</Host>
  <Port>8888</Port>   
  <Uri>www.example.com</Uri>
<Path>
     <HD>
        <UNC>path1</UNC>
    </HD>
    <SD>
       <UNC>path2</UNC>
    </SD>
</Path>

我现在尝试首先选择Path1和Path2节点,然后切换 path1 的值,其值为 path2 。 我选择如下节点:

 var firstNode = xmlFile.querySelector('Path>HD>UNC'); \\ I can get the node successfully. 
 var secondNode= xml.querySelector('Path>SD>UNC');  \\ I can get the node successfully. 

但是,当我尝试使用以下代码替换值时:

    xmlFile.replaceChild(secondNode,firstNode) // secondNode, is the new value for first node.

我收到一个错误,&#34;尝试在不存在的情况下引用节点&#34;。 我做错了什么想法?

2 个答案:

答案 0 :(得分:0)

replaceChild确实意味着取代孩子而不是曾孙。

您需要将xmlFile替换为要替换的元素的父节点。

答案 1 :(得分:0)

而不是交换节点,只需交换它们的内容,如下所示:

 var firstValue =xmlFile.querySelector('Path>HD>UNC').textContent;                                    
 var secondValue= xmlFile.querySelector('Path>HD>UNC').textContent;

 firstValue.textContent = secondValue;

 secondValue.textContent = firstValue ;