Javascript XML解析错误,未公开的CDATA部分

时间:2011-08-16 16:31:23

标签: javascript xml parsing cdata

我使用以下javascript行将XML字符串解析为XML DOM对象:

this._xmlParser = new DOMParser();
this._xmlDoc = this._xmlParser.parseFromString(txt,"text/xml");

我的xml字符串如下所示:

<?xml version="1.0"?>
<event>
  <id>41717876</id>
  <start>2011-08-16T10:16</start>
  <end>2011-08-16T10:16</end>
  <title>New Calendar Event</title>
  <location>
    <line>Your location goes here.</line>
  </location>
  <description>
    <line>Your description goes here.</line>
  </description>
  <!-- %%spider:url%% -->
  <further-info><![CDATA[ hello&goodbye ]]></further-info>
  <tag>all</tag>
  <url>www.google.com</url>
</event>

CDATA部分似乎格式正确。为什么我收到未封闭的CDATA部分的解析器错误?

1 个答案:

答案 0 :(得分:1)

很抱歉回答我自己的问题,但我发现问题的根源与浏览器响应有关,限制了xml-rpc调用中文本节点的大小。我找到了以下有用的注释here

  

“另外需要注意的是,虽然规格说明了这一点   无论标签之间存在多少文本,它都应该在一个文本中   文本节点,在实践中并非总是这样。在Opera 7-9.2x中   和Mozilla / Netscape 6+,如果文本大于特定的最大值   大小,它被分成多个文本节点。这些文本节点将是   在父节点的childNodes集合中彼此相邻   元素“。

我收到的浏览器响应在不知不觉中将我的文本节点拆分为多个文本节点。对于遇到类似问题的人来说是个好主意。