获取DOM中的文本节点值

时间:2016-02-13 07:43:22

标签: javascript xml dom

我是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]

3 个答案:

答案 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;

我尝试了innerHTMLchildNodes[0],但都没有效果 - 只有上述内容对我有效。

来源:Node.textContent - Mozilla WebDocs