質問: perlでxmlを解析して出力する。 perlでxmlで必要なデータだけ抽出しようと考えています。 下のサンプルxmlを次のテキストに変換したいのですが 具体的な記述方法が知りたく質問しました。 さくら 子供1 子供2 きく 子供3 正規表現でなくxmlパーサ?というもので解決したいです。「宿題ではありません、あしからず(^^;」 xml version="1.0" example1> example2> ... 子供1 子供2 子供3
回答: xml::simple モジュールを使った方法。 xml version="1.0" は、 xml version="1.0" ? で文字コードは utf-8 example1> は、 example1 ---------------------------------------------------------------- use encoding 'utf-8', stdout => "shiftjis"; use xml::simple; my $xml; { local $/ = undef; open(file, "<:encoding(utf-8)", "data.xml"); $xml=; close(file); } my $tree = xmlin($xml, forcearray => 1); while(my ($name, $class) = each(%{$tree->{e3}[0]->{class}})) { print $name . "\n"; for my $hito (@{$class->{heya}[0]->{hito}}){ print " ".$hito->{seimei}[0] ."\n"; } }