Ошибка синтаксического анализа символов & & с использованием анализатора Woodstox

Java: 1.6
Вудстокс: 4.1.4

В настоящее время я пытаюсь сделать Woodstox xml parser моим другом. Но начинать действительно тяжело:) У меня есть маленький? Проблема при разборе XML, как этот:

<teams>
    <team id="team1">Mom & Dad</team>
    <team id="team2">Son & Daughter</team>
</teams>

Это просто, но, к сожалению, я получаю это исключение:

Exception in thread "main" [com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ' ' (code 32) (missing name?)
 at [row,col {unknown-source}]: [2,24]

Это происходит из-за характера &.

Вопрос:
Можно ли успешно прочитать xml без получения этого исключения?

заранее спасибо
Хьюберт

1 ответ

Решение

& является недопустимым символом и должен отображаться как экранированный &amp; или в разделе CDATA.

<teams>
    <team id="team1">Mom &amp; Dad</team>
    <team id="team2"><![CDATA[Son & Daughter]]></team>
</teams>

От: http://www.w3.org/TR/REC-xml/

Символ амперсанда (&) и левая угловая скобка (<) НЕ ДОЛЖНЫ появляться в их буквальной форме, за исключением случаев, когда они используются в качестве разделителей разметки или внутри комментария, инструкции по обработке или раздела CDATA. Если они нужны в другом месте, они ДОЛЖНЫ быть экранированы с использованием либо числовых ссылок на символы, либо строк ". &amp; " а также " &lt; соответственно.

Другие вопросы по тегам