2016-02-13 260 views
1

我是新来的DOM。我想在标签标题的第一个节点的文本http://www.w3schools.com/xml/books.xml,这是每天意大利。答案应该是这样的:在DOM中获取文本节点值

var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; 

从我所看到的,

xmlDoc.getElementsByTagName("title")[0] 

选自标题标签的所有节点阵列获取的第一个冠军点。如果我想获取该节点的文本,是不是应该像这样?

xmlDoc.getElementsByTagName("title")[0].nodeValue 

为什么它与childNodes有关?这是什么类型?

xmlDoc.getElementsByTagName("title")[0].childNodes[0] 

回答

1

文本内容表现为在这种情况下childNode。可能是换行符或其他字符导致了这种情况发生。 (见here,例如)

无论哪种方式,您可以按如下方式访问内容:

xmlDoc.getElementsByTagName("title")[0].innerHTML 
+0

我想我明白了,谢谢你。 – Zongyang

0

http://www.w3schools.com/xml/dom_nodes_get.asp -

“在DOM,一切都是一个节点。元素节点没有文本值。 元素节点的文本值存储在子节点中。这个节点被称为文本节点。'

xmlDoc.getElementsByTagName("title")[0] // first title element node 

所以,.childNodes [0]时需被其中文本值存储

+0

我试过'childNodes [0]',刚刚拿到了'文本'的值(这没什么用处!) –

0
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].textContent; 

我试图innerHTMLchildNodes[0]它的文本节点,但既不工作 - 仅由上述工作了我。

来源:Node.textContent - Mozilla WebDocs