&
является escape-символом в XML. XML, который выглядит так:
<theaterName>P&G Greenbelt</theaterName>
должен быть фактически отклонен парсером. Вместо этого это должно выглядеть так:
<theaterName>P&G Greenbelt</theaterName>
Есть несколько таких символов, таких как <
(& lt;), >
(& gt;), "
(& quot;) и '
(''). Есть и другие способы экранирования символов, например, через их значение Unicode, как в & # x2022; или 〹.
Для получения дополнительной информации, спецификация XML довольно ясна.
Теперь, в зависимости от того, как было построено ваше дерево, может быть и другое: символ является правильно экранированным, и пример, который вы показали, не соответствует действительности, а именно данные представлены в дереве.
Например, при использовании SAX для построения дерева сущности (&
-веции) разбиваются на части и доставляются отдельно. Это связано с тем, что синтаксический анализатор SAX пытается вернуть непрерывные порции данных, а когда он попадает к escape-символу, он отправляет то, что имеет, и запускает новый порог с переведенным значением &
. Поэтому вам может потребоваться объединить последовательные текстовые узлы в вашем дереве, чтобы получить все значение.