2012-05-01 13 views
2

だから私は、私はここに複製します別の質問から例を次のようだ:XPathは複数の値を返す子の子の値に基づいて要素を選択しますか?

./book[author/name = 'John'] 

「それの一つの子供たちの子供たちの価値に基づいて要素を選択しようとすると、」

「ウォントすべての書籍どこ著者名=何らかの理由で、私は上記のXPathを使用し、そのDのために今すぐ "ジョン

XMLファイル」

<list> 
    <book> 
     <author> 
     <name>John</name> 
     <number>4324234</number> 
     </author> 
     <title>New Book</title> 
     <isbn>dsdaassda</isbn> 
    </book> 
    <book>...</book> 
    <book>...</book> 
</list> 

、 OESはブックノードを選択しますが、著者=ジョンが存在するノードだけでなく、すべてを選択します。 xpathがそれを無視し、すべてのブックノードを引っ張る理由はありますか?

これは意味があると思います。ありがとう!

+0

をあなたはそれがすべて 'book'ノードを選択してよろしいですか?あなたのxpathは大丈夫です –

+0

@AlehDouhi確かに、私はXMLをRubyオブジェクトにマップするRuby gemを使ってxpathを使って作業しています。しかし、ドキュメントはスリムであり、非常に普及しているようには見えません。私は、XMLの例で何かが欠けていたと思っていましたが、あなたが正しいと思います。そのXPathはうまくいくはずですが、Rubyアプリケーションの文脈では、すべてを掴んでいるだけです。一口。 – librarion

答えて

2

次は動作するはずです:

/list/book[author/name/. = 'John'] 

または

/list/book[author/name/text() = 'John']