通过JavaScript处理时,CDATA内的内容无法正确显示

时间:2010-09-28 07:30:02

标签: javascript xml cdata

我有一个XML文档,其中包含一些示例内容:

<someTag>
 <![CDATA[Hello World]]>
</someTag>

我正在使用JavaScript解析上述XML。当我尝试使用xmldoc.getElementsByTagName("someTag")[0].childNodes[0].textContent访问并呈现 Hello World 文本时,我得到的是屏幕上的空白文本。

代码未返回undefined或任何错误消息。所以我猜代码正在正确访问消息。但由于CDATA,它无法在屏幕上正确呈现。

无论如何要解决这个问题并从这个xml文件中获取Hello World?

2 个答案:

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