#!/usr/bin/perl use Jcode; #use Data::Dumper; sub convert_jp { my ($text, $tocode, $fromcode) = @_; if($tocode ne '' and $tocode ne $fromcode){ Jcode::convert(\$text, $tocode, $fromcode); } ($text); } sub urldecode{ my ($text) = @_; $text =~ s/\\x([0-9a-f][0-9a-f])/\%$1/gi; $text =~ s/%([0-9a-f][0-9a-f])/pack("C",hex($1))/egi; ($text); } sub xml_to_array { my $xml = shift; my $tag_regex_ = q{<[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))}; my $comment_regex = '-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)'; my $cdata_regex = q{|$(?!\n))}; my $tag_regex = qq{$cdata_regex|$comment_regex|$tag_regex_}; my $text_regex = q{[^<]*}; my @result; while ($xml =~ /($text_regex)($tag_regex)?/gso) { my ($text, $tag) = ($1, $2); last if ($text eq '' and $tag eq ''); push (@result, grep {$_ ne ''} ($text, $tag)); } return @result; } $charset2jcode{'ISO-2022-JP'}='jis'; $charset2jcode{'SHIFT_JIS'}='sjis'; $charset2jcode{'EUC-JP'}='euc'; $charset2jcode{'UTF-8'}='utf8'; $charset = ""; $data = join('', <>); if($data =~ /new($data,$srccode)->euc; }else{ $eucdata = $data; } #print $eucdata; @xml = &xml_to_array($eucdata); #print Dumper([@xml]); foreach(@xml){ if(/^