XMLの差分取得2
textNodeの中身消去して、XMLの構造だけを比較するバージョン
#!/usr/bin/perl use strict; use warnings; use utf8; use LWP::UserAgent; use XML::Simple; use XML::DOM::XPath; use Text::Diff; binmode(STDOUT, ':utf8'); my $content1 = get('http://search.hatena.ne.jp/keyword?word=ABC&mode=rss&ie=utf8&page=1'); my $content2 = get('http://search.hatena.ne.jp/keyword?word=ABC&mode=rss&ie=utf8&page=2'); print diff \$content1, \$content2; sub get { my $ua = LWP::UserAgent->new; my $xs = XML::Simple->new(ForceArray => 1, RootName => 'root'); my $r = $ua->get(shift); die $r->status_line unless $r->is_success; my $content = parse($r->content); return $xs->XMLout($xs->XMLin($content)); } sub parse { my $parser = XML::DOM::Parser->new(); my $doc = $parser->parse(shift); my @nodelist = $doc->findnodes('//text()'); foreach my $node (@nodelist) { $node->setNodeValue(''); } return $doc->toString(); }