-

在本章中,我们将研究如何获取XML DOM对象节点值。XML文档具有称为节点的信息单元的层次结构。Node对象具有一个属性nodeValue,它返回该元素的值。

在以下部分我们将探讨:

node.xml在以下所有实施例中使用是如下:

<Company>
   <Employee category="Technical">
      <FirstName>Tanmay</FirstName>
      <LastName>Patil</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>tanmaypatil@xyz.com</Email>
   </Employee>
   <Employee category="Non-Technical">
      <FirstName>Taniya</FirstName>
      <LastName>Mishra</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>taniyamishra@xyz.com</Email>
   </Employee>
   <Employee category="Management">
      <FirstName>Tanisha</FirstName>
      <LastName>Sharma</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>tanishasharma@xyz.com</Email>
   </Employee>
</Company>

获取节点值

方法getElementsByTagName()以文档顺序返回具有给定标签名称的所有元素NodeList并包含在文档中。

下面的例子(getnode_example.htm)解析XML文档(node.xml)成XML DOM对象,并且提取childNode的节点值FIRSTNAME(在0的索引):

<!DOCTYPE html>
<html>
   <body>
      <script>
         if (window.XMLHttpRequest)
         {
            xmlhttp = new XMLHttpRequest();
         }
         else
         {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/dom/node.xml",false);
         xmlhttp.send();
         xmlDoc = xmlhttp.responseXML;

         x = xmlDoc.getElementsByTagName("FirstName")[0]
         y = x.childNodes[0];
         document.write(y.nodeValue);
      </script>
   </body>
</html>

执行

将此文件作为getnode_example.htm保存在服务器路径上(此文件和node.xml应位于服务器中的相同路径上)。在输出中,我们得到节点值为Tanmay

获取属性值

属性是XML节点元素的一部分。节点元素可以具有多个唯一属性。属性提供了有关XML节点元素的更多信息。更准确地说,它们定义节点元素的属性。XML属性始终是名称 - 值对。该属性的值被称为属性节点

方法getAttribute()通过元素名称检索属性值。

下面的例子(get_attribute_example.htm)解析XML文档(node.xml)成XML DOM对象,并且提取的类别的属性值雇员(以2索引):

<!DOCTYPE html>
<html>
   <body>
      <script>
         if (window.XMLHttpRequest)
         {
            xmlhttp = new XMLHttpRequest();
         }
         else
         {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/dom/node.xml",false);
         xmlhttp.send();
         xmlDoc=xmlhttp.responseXML;

         x = xmlDoc.getElementsByTagName("Employee")[2];
         document.write(x.getAttribute("category"));
      </script>
   </body>
</html>

执行

将此文件作为get_attribute_example.htm保存在服务器路径上(此文件和node.xml应与您的服务器中的路径相同)。在输出中,我们得到属性值即管理