我在这里看到了一些关于这个主题的答案,但我无法得到我想要的东西。我正在制作菜单,我需要分配链接。那么我怎样才能获得特定节点的价值?例如,如何获取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] <subMenu id"sublink1"><hrefSubMenu>
的nodeValue,其值为“http://www.web01.com”(我将适应任何解决方案,以便找到并获得我想要的任何节点值)。但我需要帮助知道如何做到这一点。
提前感谢您提供给我的任何帮助。
问候。
答案 0 :(得分: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