PerlによるXMLファイルの解析&出力
XMLファイルで以下のようなXMLファイルから、
<?xml version="1.0" encoding="Shift_JIS"?>
<class3>
<Personal>
<No>1</No>
<Name>相上男</Name>
<phone>00-0000</phone>
</Personal>
<Personal>
<No>2</No>
<Name>柿句毛子</Name>
<phone>11-1111</phone>
</Personal>
</class3>
perlでNameの部分のタグだけ抜き出しXMLファイルに出力するプログラムを組み立てたいです。自分でも以下のようなプログラムを組み立てたのですが、
#!/usr/bin/perl
use strict;
use Encode;
use XML::XPath;
use XML::XPath::XMLParser;
# 書き込み用にファイルを開く
open( OUTPUTFILE, ">Output2.xml" );
# 標準出力に書き出し
print &xml_xpath;
# ファイルを出力先に設定
select( OUTPUTFILE );
# 出力先を元に戻す
select( STDOUT );
# ファイルを閉じる
close( OUTPUTFILE );
sub xml_xpath{
my $file = "class3.xml";
my $xp = XML::XPath->new(filename => $file);
foreach my $node( $xp->find('/class3/Personal/Name')->get_nodelist){
print Encode::encode("shift_jis", $node )."\n";
}
}
XML::XPath::Node::Element=REF(0x1036c58c)
XML::XPath::Node::Element=REF(0x1036cb8c)
と、出てくるだけで動きません。ほとんど初心者なのでまったく見当違いのプログラムを組み立てているかもしれませんが、よろしくおねがいします。