🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
3 messages
3 total messages Started by Jarosław Lubczyński Sat, 04 Jun 2011 17:40
XML::SAX::Writer i deklaracja XML
#52235
Author: Jarosław Lubczyński
Date: Sat, 04 Jun 2011 17:40
42 lines
2153 bytes
... a właściwie jej brak. Do generowania dokumentów XML używam w/w 
pakietu (czyli XML::SAX::Writer) i chciałbym przy nim pozostać. Działa 
znakomicie ale ma jak dla mnie jedną wadę: niestety nie znalazłem 
sposobu, by zmusić go do generowania deklaracji XML czyli wiersza w stylu:

<?xml version="1.0" encoding="UTF-8"?>

W zasadzie zdaje się, że powinienem wywołać metodę xml_decl() ale ponoć 
jest ona oznaczona jako deprecated, a poza tym nie znalazłem opisu 
parametrów jej wywołania. Na forum

http://osdir.com/ml/lang.perl.xml/2003-07/msg00028.html

jest propozycja, że parametry deklaracji będą obsługiwane w  metodzie 
start_document() - ale jakoś nie doczytałem, czy ten pomysł został 
wdrożony, a próba wywołania na chybił (nie)trafił typu

[my $info =
{
     Version    => '1.0',
     Encoding   => 'UTF-8',
     Standalone => 0,
};

$self->start_document( $info);

zupełnie nie dała żadnego rezultatu.

Próbowałem też analizy kodu XML::SAX::Base, co przyprawiło mnie o ból 
głowy a i debugowanie przy pomocy EPIC'a niewiele pomogło niestety.


Jaka rada?

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Re: XML::SAX::Writer i deklaracja XML
#52236
Author: Tomasz Konojacki
Date: Sat, 04 Jun 2011 17:46
77 lines
3263 bytes
Nie znam tego modułu, ale przejrzałem go na szybko i wygląda na to, że 
xml_decl() jest jedyną metodą generującą deklarację XML. A co do jej 
argumentów - funkcja wygląda tak:

sub xml_decl {
    my $self = shift;
    my $data = shift;

    # version info is compulsory, contrary to what some seem to think
    # also, there's order in the pseudo-attr
    my $xd = '';
    if ($data->{Version}) {
        $xd .= "<?xml version='$data->{Version}'";
        if ($data->{Encoding}) {
            $xd .= " encoding='$data->{Encoding}'";
        }
        if ($data->{Standalone}) {
            $xd .= " standalone='$data->{Standalone}'";
        }
        $xd .= '?>';
    }

    #$xd = $self->{Encoder}->convert($xd); # this may blow up
    $self->{Consumer}->output($xd);
}

Pozdrawiam

----
http://www.xenu.cc - Moja strona domowa.
http://perl.info.pl - Perlwiki, polska encyklopedia Perla.

Użytkownik "Jarosław Lubczyński"  napisał w wiadomości grup 
dyskusyjnych:isdqmp$o8$1@inews.gazeta.pl...

... a właściwie jej brak. Do generowania dokumentów XML używam w/w
pakietu (czyli XML::SAX::Writer) i chciałbym przy nim pozostać. Działa
znakomicie ale ma jak dla mnie jedną wadę: niestety nie znalazłem
sposobu, by zmusić go do generowania deklaracji XML czyli wiersza w stylu:

<?xml version="1.0" encoding="UTF-8"?>

W zasadzie zdaje się, że powinienem wywołać metodę xml_decl() ale ponoć
jest ona oznaczona jako deprecated, a poza tym nie znalazłem opisu
parametrów jej wywołania. Na forum

http://osdir.com/ml/lang.perl.xml/2003-07/msg00028.html

jest propozycja, że parametry deklaracji będą obsługiwane w  metodzie
start_document() - ale jakoś nie doczytałem, czy ten pomysł został
wdrożony, a próba wywołania na chybił (nie)trafił typu

[my $info =
{
     Version    => '1.0',
     Encoding   => 'UTF-8',
     Standalone => 0,
};

$self->start_document( $info);

zupełnie nie dała żadnego rezultatu.

Próbowałem też analizy kodu XML::SAX::Base, co przyprawiło mnie o ból
głowy a i debugowanie przy pomocy EPIC'a niewiele pomogło niestety.


Jaka rada?

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't 
Re: XML::SAX::Writer i deklaracja XML
#52237
Author: Jarosław Lubczyński
Date: Mon, 06 Jun 2011 07:35
28 lines
1886 bytes
W dniu 2011-06-04 19:46, Tomasz Konojacki pisze:
> Nie znam tego modułu, ale przejrzałem go na szybko i wygląda na to, że
> xml_decl() jest jedyną metodą generującą deklarację XML. A co do jej
> argumentów - funkcja wygląda tak:
>
> sub xml_decl {
> my $self = shift;
> my $data = shift;
>
[...]

Dzięki bardzo, niepotrzebnie tylko grupie zawracałem głowę, w 
międzyczasie sam pogrzebałem i znalazłem odpowiedź, a ww list wycowałem 
ze względu na bzdurny tytuł: myślałem o XML::SAX:Base a napisałem 
XML::SAX::Writer (którego też zresztą używam), pewno przez ten 
wczorajszy upał :). Stąd drugi watek, a łobuz Google zaindeksował mój 
wcześniejszy list i już z garści nie wypuścił :)

Niemniej dzięki za pomoc :).

-- 
Pozdrawiam
Jarek Lubczyński
(eljot<NULL>90125 at gmail dot com)
Nawiasy trójkątne z zawartością zbędne są

There are 10 kinds of people:
Those who understand binary and those who don't
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads