[Moscow.pm] вопрос про XML::SAX и обработку entity внутри тега (в составе characters)

Sergey Skvortsov skv на protey.ru
Вт Июн 17 04:42:21 PDT 2008


On 17.06.2008 13:40, Dmitry Arsentiev wrote:
> 
> Может быть кто-нибудь встречался с такой проблемой и может помочь.
> Есть некий XML, в котором встречаются HTML-ные сущности, например, &
> 
> Вот кусочек этого xml:
> <f106>John &amp; Bill</f106>
> 
> Разбираю XML с помощью XML::SAX.
> 
> Содержимое тега f106 сохраняю в некую переменную $tags->{'authors'} .
> Проблема в том, что в $tags->{'authors'} сохраняются не John &amp; Bill,
> а только Bill.
> 
> Вопрос: как настроить обработчик SAX, чтобы entities попадали в
> $tags->{'authors'} ?

Никак.

&amp; - это стандартный xml entity (равно как &lt;, &apos; и т.п.) и 
выдается xml parser'ом уже в нормализованном виде. Так что SAX тут 
вообще ни при чём.

Если нужно получить "оригинальный" вид - используйте некий xml escaping.

Я в своё время написал для этого XS-модуль XML::Quote - чтобы 
генерировать xml "руками".

-- 
Sergey Skvortsov
mailto: skv на protey.ru


Подробная информация о списке рассылки Moscow-pm