SAX Ошибка при чтении не правильно сформированного XML - PullRequest
1 голос
/ 31 октября 2011

У меня есть XML-файл, который содержит часть, как показано ниже. img и br не являются тегами, но при синтаксическом анализе SAX считает, что img и br являются тегами, поэтому из-за отсутствия закрытого тега возникает ошибка SAX.Как мне это преодолеть, как игнорировать img и br при разборе.Спасибо тебе!

<summary xml:base="http://www.dailymail.co.uk/health/index.html?ITO=1490" xml:lang="en-GB" type="html">
    <img src="http://i.dailymail.co.uk/i/pix/2011/10/30/article-2055372-01A8032A0000044D-515_87x84.jpg" width="87" height="84"><br>Millions take statins to combat heart disease by lowering cholesterol, but research suggests that high cholesterol could be a key factor in the development of breast cancer.
</summary>

Ответы [ 3 ]

1 голос
/ 31 октября 2011

Я думаю, что этот XML недопустим - каждый анализатор будет пытаться проанализировать теги img и br в этом XML.
Они должны быть окружены тегом CDATA, чтобы они не анализировались:
http://www.w3schools.com/xml/xml_cdata.asp

1 голос
/ 31 октября 2011

Это не правильно сформированный XML.В XML каждый элемент должен быть закрыт, либо с закрывающим тегом (<br>...</br>), либо с неявностью в качестве пустого тега (<br/>).Если в качестве текста требуются некоторые символы разметки, то либо они должны быть встроены в раздел CDATA ...

<![CDATA[This is my <em>character</em> data, not markup.]]>

..., либо с помощью ссылок на сущности символов:

This is my &lt;em&gt;character&lt;/em&gt; data, not markup.

SAX не может знать, что некоторые разметки следует рассматривать как XML, а другие - не только потому, что они являются элементами HTML.Если он увидит <br>, он будет предполагать, что запускает элемент br, и соответствующий закрывающий тег будет встречен позже.

1 голос
/ 31 октября 2011

Теги должны быть закрыты. Попробуйте
, а также добавьте символ косой черты ('/'), прежде чем тег img закончится следующим образом.
image
Я пытался , это сработало; -)

...