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
Author: Jarosław Lubczyński
Date: Sat, 04 Jun 2011 17:40
Date: Sat, 04 Jun 2011 17:40
42 lines
2153 bytes
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
Author: Tomasz Konojacki
Date: Sat, 04 Jun 2011 17:46
Date: Sat, 04 Jun 2011 17:46
77 lines
3263 bytes
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
Author: Jarosław Lubczyński
Date: Mon, 06 Jun 2011 07:35
Date: Mon, 06 Jun 2011 07:35
28 lines
1886 bytes
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