|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vargen 2:5020/400 25 Aug 2004 18:21:12 To : Alexander E.Kononenko Subject : Re: XML :: DOM --------------------------------------------------------------------------------
Enjoy.
===8< dom.pl 8<=====
#!/usr/bin/env perl
use strict;
use warnings;
use XML::DOM;
sub visit_node {
my $node = shift;
for my $child
(grep {$_->getNodeType == ELEMENT_NODE}
$node->getChildNodes)
{
my $hsub = \&{__PACKAGE__ . '::visit_' . $child->getNodeName()};
$hsub->($child) if defined &$hsub;
visit_node($child);
}
}
for my $s qw(maps mapref helpset title view label name type data) {
no strict 'refs';
*{__PACKAGE__ . '::visit_' . $s} = sub {
my $map = shift;
print '<' . $map->getNodeName() . '>' . " visited!\n";
};
}
my $parser = XML::DOM::Parser::->new;
my $doc = $parser->parsefile($ARGV[0]);
visit_node($doc);
$doc->dispose;
===>8 dom.pl >8=====
<?xml version='1.0' encoding='ISO-8859-1'?>
<helpset version="1.0">
<title>Together Context Help</title>
<maps>
<mapref location="file:C:\tg\help\context\xml\map0.xml"/>
<mapref location="file:C:\tg\help\context\xml\map2.xml"/>
</maps>
<view>
<name>Index</name>
<label>J2EE</label>
<type>com.togethersoft.modules.help.ui.plaf.IndexNavigatorView</type>
<data>file:C:\tg\help\context\xml\index0.xml</data>
</view>
<view>
<name>Index</name>
<label>J2SDK-1.3</label>
<type>com.togethersoft.modules.help.ui.plaf.IndexNavigatorView</type>
<data>file:C:\tg\help\context\xml\index2.xml</data>
</view>
</helpset>
===8< contexthelp.xml 8<===
===>8 contexthelp.xml >8===
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488c3719814.html, оценка из 5, голосов 10
|