在javascript中仅获取另一个节点中的节点
这是我的XML在javascript中仅获取另一个节点中的节点,javascript,xml,dom,Javascript,Xml,Dom,这是我的XML <?xml version="1.0" encoding="ISO-8859-1" ?> <book> <title>My Title</title> <description></description> <chapter> <title>Chapter 1</title> <description>text inside chapter&
<?xml version="1.0" encoding="ISO-8859-1" ?>
<book>
<title>My Title</title>
<description></description>
<chapter>
<title>Chapter 1</title>
<description>text inside chapter</description>
</chapter>
</book>
问题在于这些线路:
x=doc.getElementsByTagName("title")[k];
及
从“书籍”部分获取信息,而不是从章节获取信息
我相信有人知道如何得到这个
感谢在您的代码中使用
doc
变量,该变量似乎是从document
对象继承的,请参阅
.getElementsByTagName(“title”)
方法返回一个标记数组title
,它不仅出现在章节中,而且出现在根元素书籍中
从章节节点搜索,而不是从文档搜索
var chapters = doc.getElementsByTagName("chapter");
for(var i=0; i<chapters.length; ++i) {
// search from book, which is what you don't want
// doc.getElementsByTagName("title")[0];
// search from chapter, you want this
chapters[i].getElementsByTagName("title")[0];
}
您是否尝试过先获取章节集:
var chapters =doc.getElementsByTagName("chapter");
然后遍历每一章,在集合中找到该实例的子节点
if (chapters.length > 0)
{
for (i = 0; i < resultList.length; i++)
{
var title = chapters[i].getElementsByTagName("title")[0];
var desc = chapters[i].getElementsByTagName("description")[0];
// do work here
}
}
if(chapters.length>0)
{
对于(i=0;i
为什么要将其标记为node js?@tomahim我的想法完全正确,我已将其删除。对不起,我知道了,但我犯了一个错误。
var titles = doc.querySelectorAll("chapter title");
alert(titles[0].innerHTML); // Chapter 1
var chapters =doc.getElementsByTagName("chapter");
if (chapters.length > 0)
{
for (i = 0; i < resultList.length; i++)
{
var title = chapters[i].getElementsByTagName("title")[0];
var desc = chapters[i].getElementsByTagName("description")[0];
// do work here
}
}