0

我在这里看到了一些关于这个主题的答案,但我无法真正得到我想要的。我正在制作一个菜单,我需要分配链接。那么如何获得特定节点的值呢?例如如何获取 subMenus[0] 的值<subMenu id="submenu1"><hrefSubMenu>,即http://www.web01.com

<?xml version="1.0" encoding="utf-8"?>
<menu>
  <link id="0">
    <title>Main Link 01</title> 
    <href>http://www.mainweb01.com</href>
    <subMenus>
      <subMenu id="sublink1">
        <titleSubMenu>SubMenu01</titleSubMenu>
        <hrefSubMenu>http://www.web01.com</hrefSubMenu> 
      </subMenu>
      <subMenu id="sublink2">
        <titleSubMenu>SubMenu02</titleSubMenu>
        <hrefSubMenu>http://www.web02.com</hrefSubMenu>
      </subMenu>
    </subMenus>
  </link>
  <link id="1">
    <title>Main Link 02</title>
    <href>http://www.mainweb02.com</href>
    <subMenus>
      <subMenu id="sublink3">
        <titleSubMenu>SubMenu03</titleSubMenu>
        <hrefSubMenu>http://www.web03.com</hrefSubMenu>
      </subMenu>
      <subMenu id="sublink4">
        <titleSubMenu>SubMenu04</titleSubMenu>
        <hrefSubMenu>http://www.web04.com</hrefSubMenu>
      </subMenu>
      <subMenu id="sublink5">
        <titleSubMenu>SubMenu05</titleSubMenu>
        <hrefSubMenu>http://www.web05.com</hrefSubMenu>
      </subMenu>
    </subMenus>
  </link>
</menu>

使用类似的东西,我可以从整个标题中获取特定节点的值。

//if I want to get the first title
var name = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
alert(name);
//the output will be Main Link 01

但是我想获得一个特定节点的值,正如我所说的那样,来自 subMenus[0] 的 nodeValue <subMenu id"sublink1"><hrefSubMenu>,其值为“ http://www.web01.com ”(我将调整任何解决方案以便查找并获取我想要的任何节点值)。但我需要帮助才能知道该怎么做。

提前感谢您能给我的任何帮助。

问候。

4

1 回答 1

1

元素节点没有节点值。

该元素<subMenu id="sublink1">具有一个元素节点hrefSubMenu,而该子元素节点又具有一个子文本节点http://www.web01.com。文本节点的节点值就是文本本身。

所以我相信你想要:

var href = xmlDoc.getElementById('sublink1') // get subMenu element
    .getElementsByTagName('hrefSubMenu')[0] // get hrefSubMenu child
    .firstChild.nodeValue; // get node value of text node
于 2013-05-05T16:48:21.260 回答