Ошибка синтаксического анализа Javascript XML, незакрытый раздел 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?


person Kyle    schedule 16.08.2011    source источник


Ответы (1)


Извините, что отвечаю на мой собственный вопрос, но я обнаружил, что источник моей проблемы был связан с ответом браузера, ограничивающим размер текстовых узлов в вызовах xml-rpc. Я нашел следующую полезную заметку здесь:

«Также важно отметить, что, хотя в спецификациях говорится, что независимо от того, сколько текста находится между тегами, он должен быть в одном текстовом узле, на практике это не всегда так. В Opera 7-9.2x и Mozilla/Netscape 6 +, если текст больше определенного максимального размера, он разбивается на несколько текстовых узлов. Эти текстовые узлы будут находиться рядом друг с другом в коллекции childNodes родительского элемента».

Ответ, который я получил от браузера, неосознанно разделил мой текстовый узел на несколько текстовых узлов. Поднимите голову всем, у кого есть похожая проблема.

person Kyle    schedule 16.08.2011