Ошибка синтаксического анализа специальных символов в XML-домене в Java - PullRequest
0 голосов
/ 30 июля 2011

Я использую org.w3c.dom в Java для чтения XML с помощью следующей функции

try
        {
            cwNodes =  xmlDoc.getElementsByTagName("cw-page");
        }
        catch(Exception doe)
        {
            BusinessLogic.WriteLog("Exp msg: "+doe.getMessage());

        }

xml

<cw-page id='4545' num='1'>dlfdlkfsdf</cw-page>

это хорошо читается, но когда я передаю следующий XML

<cw-page id='4545' num='1'>dlfdlkfsdf&!@#%^*()</cw-page>

не читает, исключение также равно нулю, не знаю, что не так, кто-нибудь может помочь, спасибо

1 Ответ

4 голосов
/ 30 июля 2011

& не может появиться сам по себе в документе XML, так как он используется для запуска ссылки на сущность XML . Следовательно, ваш XML-документ должен содержать &amp;, а не &, если синтаксический анализатор должен правильно проанализировать его содержимое и вернуть & в текстовом содержимом. & - не единственный символ, который парсеры XML не смогут проанализировать неправильно, если они присутствуют сами по себе; есть другие символы, которые должны присутствовать в виде предопределенных сущностей XML , чтобы синтаксический анализ выполнялся правильно.

Вы должны либо исправить документ, используя ссылки на сущности, либо использовать секции CDATA для переноса специальных символов в полезной нагрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...