私は誰かが助けてくれることを望んでいる問題を抱えています...
次の例の xml 構造があります。
<library>
<book>
<title>Perl Best Practices</title>
<author>Damian Conway</author>
<isbn>0596001738</isbn>
<pages>542</pages>
<image src="http://www.oreilly.com/catalog/covers/perlbp.s.gif"
width="145" height="190" />
</book>
<book>
<title>Perl Cookbook, Second Edition</title>
<author>Tom Christiansen</author>
<author>Nathan Torkington</author>
<isbn>0596003137</isbn>
<pages>964</pages>
<image src="http://www.oreilly.com/catalog/covers/perlckbk2.s.gif"
width="145" height="190" />
</book>
<book>
<title>Guitar for Dummies</title>
<author>Mark Phillips</author>
<author>John Chappell</author>
<isbn>076455106X</isbn>
<pages>392</pages>
<image src="http://media.wiley.com/product_data/coverImage/6X/0750/0766X.jpg"
width="100" height="125" />
</book>
</library>
動作するはずだと思ったコード:
use warnings;
use strict;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file('/path/to/xmlfile.xml');
my $width = "145";
my $query = "//book/image[\@width/text() = '$width']/author/text()";
foreach my $data ($xmldoc->findnodes($query)) {
print "Results: $data\n";
}
期待される出力:
ダミアン・コンウェイ トム・クリスチャンセン
しかし、何も返されません。
これは、値が 145 の属性「width」を持つ「image」要素も含む「book」要素内の「author」要素のテキスト コンテンツと一致すると考えました。
私はここで非常に明白な何かを見落としていると確信していますが、私が間違っていることを解決することはできません.
あなたの助けは大歓迎です