|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 09 Dec 2002 19:15:45 To : Maxim N. Severinovsky Subject : Re: Perl and XML -------------------------------------------------------------------------------- Maxim N. Severinovsky wrote: > Hе могу врубиться как разбирать XML > Hарод рекомендовал юзать XML::LibXML > Мне надо Разобрать ваш XML и засунуть его в базу. Hаш?!! > Hе поделитесь примером на перле? > > XML файл выглядит примерно так: > <material><date>21.03.2002 11:53</date><author>Some > author.</author><author_id>7966</author_id><can_edit>0</can_edit><title><![CDA > TA[Some text.Some text.Some text.Some text.Some text.Some text.Some text.Some > text.Some text.Some text. </title><id>10242</id><headline><![CDATA[Some > text.Some text.Some text.Some text.Some text.Some text.Some text.Some > text.Some text.Some text. ]]></headline><text><![CDATA[<div>Some text. Some > text. Some text. Some text. Some text. Some text. Some text. Some text. Some > text. Some text. Some text. Some text. Some text. Some text. Some text. Some > text. Some text. Some text. Some text. Some text. Some text. Some text. > Some text. Some text. Some text. Some text. Some text. Some text. Some > text. Some text. Some text. Some text. Some text. Some text. Some text. > Some text. > </div>]]></text><material_other_theme><name>some text</name><link>7232</link>< > /material_other_theme><material_other_theme><name>some > text</name><link>7251</link></material_other_theme><comments> </comments> </ma > terial> Пожалуйста: #!/usr/bin/perl -w use strict; use XML::DOM; sub elvalue { my ($self, $nodetag) = @_; my $text = ''; foreach ($self->getElementsByTagName($nodetag)->item(0)->getChildNodes) { $text .= $_->getNodeValue if $_->getNodeType == TEXT_NODE || $_->getNodeType == CDATA_SECTION_NODE; } $text; } my $parser = new XML::DOM::Parser; my $doc = $parser->parsefile("ourfile.xml"); my $parent = $doc->getDocumentElement; my $date = $parent->main::elvalue('date'); my $author = $parent->main::elvalue('author'); my $headline = $parent->main::elvalue('headline'); my $text = $parent->main::elvalue('text'); ... Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577f2f8a835.html, оценка из 5, голосов 10
|