代码之家  ›  专栏  ›  技术社区  ›  Veera

当通过JavaScript处理时,CDATA中的内容不能正确显示

  •  0
  • Veera  · 技术社区  · 15 年前

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

    我正在用JavaScript解析上面的XML。当我尝试访问并渲染 你好,世界 xmldoc.getElementsByTagName("someTag")[0].childNodes[0].textContent 我得到的只是屏幕上的一条空白文本。

    代码没有返回 undefined 或任何错误消息。所以我猜代码正确地访问了消息。但由于 CDATA

    2 回复  |  直到 15 年前
        1
  •  0
  •   Mia Clarke    15 年前

    this 是你的问题所在。行为看起来很相似。。。以下可能会起作用:

    xmldoc.getElementsByTagName("someTag")[0].childNodes[1].textContent;
    
        2
  •  1
  •   bobince    15 年前

    注意Firefox的行为是绝对正确的。 someTag 有三个孩子:

    • Text 包含 <someTag> <!CDATA
    • CDATASection 节点本身;
    • 另一个空格 包含CDATA结尾和结束标记之间的单个换行符的节点。

    如果只需要元素中的文本值,最好不要过于依赖元素中可能存在的文本和CDATA节点的组合。打个电话就行了 textContent <someTag> 它本身 您将获得所有组合文本内容: '\n Hello World\n' . (你可以 .trim()