[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-ные сущности, например, &
>>
>> Вот кусочек этого xml:
>> <f106>John & Bill</f106>
>>
>> Разбираю XML с помощью XML::SAX.
>>
>> Содержимое тега f106 сохраняю в некую переменную $tags->{'authors'} .
>> Проблема в том, что в $tags->{'authors'} сохраняются не John & 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