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

Dmitry Arsentiev dmarsentev на gmail.com
Вт Июн 17 02:40:04 PDT 2008


Здравствуйте.

Может быть кто-нибудь встречался с такой проблемой и может помочь.
Есть некий XML, в котором встречаются HTML-ные сущности, например, &

Вот кусочек этого 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