1

次のxmlドキュメントを使用してXPathを学習していました: http://www.w3schools.com/xpath/xpath_examples.asp

ここで、クエリを実行すると:

bookstore/book/author[contains(.,'G')]

結果は次のとおりGiada De Laurentiis, James McGovernです。さて、contains()ブール値を返すので、次のクエリがすべての著者を返すことを期待していました:

bookstore/book/author[true]

ただし、空のセットを返します。誰か説明できますか?

4

2 に答える 2

4

あなたが必要bookstore/book/author

更新:渡す必要があるということは、サブ要素を持つすべての要素を取得することを意味trueします。XPATHbookstore/book/author[true()]
author[true]authortrue

自分でチェックして、表現してみてください

bookstore/book[author1]vsbookstore/book[author]

bookサブ要素を持つ要素がないため、最初のものは何も返しませんauthor1。2つ目は、すべての要素を返します。ただし、一部のブックノードからサブノードを削除すると、authorサブノードを持つauthorサブノードのみが取得されます。

したがって、このようなxmlを使用する場合

<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
    </book>
</bookstore>

その後 bookstore/book[author]

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

bookstore/book[title]戻ります

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
</book>
于 2012-11-02T07:18:07.490 に答える