Javascript XML 解析错误,未关闭的 CDATA 部分

发布于 2024-11-29 21:22:41 字数 880 浏览 0 评论 0原文

我正在使用以下 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 部分的解析器错误?

I am using the following lines of javascript to parse an XML string into an XML DOM object:

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

My xml string looks like this:

<?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>

The CDATA section seems to be well-formed. Why am I receiving a parser error for an unclosed CDATA section?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖凝香 2024-12-06 21:22:41

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

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

我收到的浏览器响应在不知不觉中将我的文本节点拆分为多个文本节点。请注意任何有类似问题的人。

Sorry to answer my own question, but I discovered that the source of my problem had to do with the browser response limiting the size of text nodes in xml-rpc calls. I found the following useful note here:

"Also important to note is that although the specifications say that
no matter how much text exists between tags, it should all be in one
text node, in practice this is not always the case. In Opera 7-9.2x
and Mozilla/Netscape 6+, if the text is larger than a specific maximum
size, it is split into multiple text nodes. These text nodes will be
next to each other in the childNodes collection of the parent
element."

The response I was receiving to the browser had unknowingly split my text node into multiple text nodes. Heads up for anyone who has a similar issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文