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

Dmitry Arsentiev dmarsentev на gmail.com
Вт Июн 17 05:58:49 PDT 2008


Спасибо, Иван, начало работать, но как-то удивительно: меняет &apm; на & .
Но хотя бы всю строчку отдаёт, уже прогресс.


17 июня 2008 г. 15:14 пользователь Ivan B. Serezhkin
<ivan на serezhkin.com> написал:
> Привет.
> Entity Это такая отдельная сущность xml, сакс о ней рапортовать должен
> отдельно.
> Соответственно Можно делать не,   $tags->{'authors'} = , а
> $tags->{'authors'} .=
>
> Dmitry Arsentiev wrote:
>> Здравствуйте.
>>
>> Может быть кто-нибудь встречался с такой проблемой и может помочь.
>> Есть некий XML, в котором встречаются HTML-ные сущности, например, &amp;
>>
>> Вот кусочек этого xml:
>> <f106>John &amp; Bill</f106>
>>
>> Разбираю XML с помощью XML::SAX.
>>
>> Содержимое тега f106 сохраняю в некую переменную $tags->{'authors'} .
>> Проблема в том, что в $tags->{'authors'} сохраняются не John &amp; Bill,
>> а только Bill.
>>
>> Вопрос: как настроить обработчик SAX, чтобы entities попадали в
>> $tags->{'authors'} ?
>> Есть у кого-нибудь такой опыт?
>> Может быть задекларировать эти entity как-то? Как? Где?
>> Заранее спасибо.
>>
>> Сейчас у меня обработчики такие.
>>
>> sub start_element
>> {
>>     my ($self, $el) = @_;
>>     $tags->{$el->{Name}}++;
>> }#bus start_element
>>
>>
>> sub end_element
>> {
>>     my ($self, $el) = @_;
>>     $tags->{$el->{Name}}--;
>> }#bus end_element
>>
>>
>> sub characters
>>  {
>>     my ($self, $el) = @_;
>>    $tags->{'authors'} =  $el->{Data} if($tags->{'f106'} > 0 );
>>  }#bus characters
>>
>>
>> PS Видел это
>> http://kobesearch.cpan.org/htdocs/XML-SAX/XML/SAX/PurePerl.pm.html
>> http://search.cpan.org/~khampton/XML-SAX-Base-1.02/lib/XML/SAX/Base.pm
>>
>> Ясности не прибавилось.
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
> --
> Ivan B. Serezhkin
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>


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