Ошибка синтаксического анализа символов & & с использованием анализатора 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 ответ
&
является недопустимым символом и должен отображаться как экранированный &
или в разделе CDATA.
<teams>
<team id="team1">Mom & Dad</team>
<team id="team2"><![CDATA[Son & Daughter]]></team>
</teams>
От: http://www.w3.org/TR/REC-xml/
Символ амперсанда (&) и левая угловая скобка (<) НЕ ДОЛЖНЫ появляться в их буквальной форме, за исключением случаев, когда они используются в качестве разделителей разметки или внутри комментария, инструкции по обработке или раздела CDATA. Если они нужны в другом месте, они ДОЛЖНЫ быть экранированы с использованием либо числовых ссылок на символы, либо строк ".
&
" а также "<
соответственно.