我是DOM的新手。我想在此xml文件http://www.w3schools.com/xml/books.xml中获取标记为 title 的第一个节点的文本,即 Everyday Italian 。答案应该是:
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
从我看到的,
xmlDoc.getElementsByTagName("title")[0]
从包含title标签的所有节点的数组中获取第一个标题节点。如果我想获得该节点的文本,它不应该是这样的吗?
xmlDoc.getElementsByTagName("title")[0].nodeValue
为什么它与childNodes有关?这是什么类型的?
xmlDoc.getElementsByTagName("title")[0].childNodes[0]
答案 0 :(得分:2)
在这种情况下,文本内容的行为为childNode
。换行符或其他字符可能会导致这种情况发生。 (例如,参见here)
无论哪种方式,您都可以按如下方式访问内容:
xmlDoc.getElementsByTagName("title")[0].innerHTML
答案 1 :(得分:0)
来自http://www.w3schools.com/xml/dom_nodes_get.asp -
'在DOM中,一切都是节点。元素节点没有文本值。 元素节点的文本值存储在子节点中。此节点称为文本节点。'
xmlDoc.getElementsByTagName("title")[0] // first title element node
因此,.childNodes [0]需要访问其文本值存储的文本节点
答案 2 :(得分:0)
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].textContent;
我尝试了innerHTML
和childNodes[0]
,但都没有效果 - 只有上述内容对我有效。