我有一个XML文档,其中包含一些示例内容:
<someTag>
<![CDATA[Hello World]]>
</someTag>
我正在使用JavaScript解析上述XML。当我尝试使用xmldoc.getElementsByTagName("someTag")[0].childNodes[0].textContent
访问并呈现 Hello World 文本时,我得到的是屏幕上的空白文本。
代码未返回undefined
或任何错误消息。所以我猜代码正在正确访问消息。但由于CDATA
,它无法在屏幕上正确呈现。
无论如何要解决这个问题并从这个xml文件中获取Hello World?
答案 0 :(得分:1)
请注意,Firefox的行为绝对正确。 someTag
有三个孩子:
Text
和<someTag>
之间空格的<!CDATA
节点。这是一个换行符和一个空格; CDATASection
节点本身; Text
节点,其中包含CDATA末尾和close-tag之间的单个换行符。如果你想要的只是文本值,最好不要密切依赖文本和CDATA节点的组合。只需在textContent
本身上致电<someTag>
,即可获得所有合并的文字内容:'\n Hello World\n'
。 (你可以.trim()
这就是你喜欢的。)
答案 1 :(得分:0)
如果您正在运行Firefox,可能this可能是您遇到的问题。这种行为看起来很相似......以下可能会解决这个问题:
xmldoc.getElementsByTagName("someTag")[0].childNodes[1].textContent;