2017-12-02 7 views
2

ここではXMLのスニペットがあります(もっとたくさんあります)。AuthorJK Rowlingではないことを確認しながら、セクションのASINノードを見つけるXPath式を実行しようとしています。XPathで親ノードを選択していますか?

私はこの試みた:/ItemSearchResponse/Items/Item/ItemAttributes[Author = "J.K. Rowling"]/parent::

をしかし、それは何のマッチを返さない、あなたは誰の親の属性にアクセスして、私を導くことができますか?

<?xml version="1.0" encoding="UTF-8"?>  
<ItemSearchResponse> 
    <Items> 
    <Request> 
     <IsValid>True</IsValid> 
     <ItemSearchRequest> 
     <Condition>New</Condition> 
     <DeliveryMethod>Ship</DeliveryMethod> 
     <Keywords>Rowling Fiction English</Keywords> 
     <MerchantId>Amazon</MerchantId> 
     <ResponseGroup>Small</ResponseGroup> 
     <SearchIndex>Books</SearchIndex> 
     </ItemSearchRequest> 
    </Request> 
    <TotalResults>171</TotalResults> 
    <TotalPages>18</TotalPages> 
    <Item> 
     <ASIN>0747557462</ASIN> 
     <ItemAttributes> 
     <Author>Sarah Brown</Author> 
     <Author>Gil McNeil</Author> 
     <Creator Role="Foreword">J.K. Rowling</Creator> 
     <Manufacturer>Bloomsbury UK</Manufacturer> 
     <ProductGroup>Book</ProductGroup> 
     <Title>Magic</Title> 
     </ItemAttributes> 
    </Item> 
    </Items> 
</ItemSearchResponse> 
+1

構文エラーが発生するはずです。 'parent ::'には何らかの種類のNodeTestが続かなければなりません。 'parent :: *'または 'parent :: Item'です。 –

答えて

2

親は、XPathで..を経由して選択することができますが、多くの場合、それは代わりに、祖先に高い述語を使用するクリーナーです:

//Item[not(ItemAttributes/Author="J.K. Rowling")]/ASIN 

ItemAttributes/Authorを持っていないItem要素内のすべてのASINの要素を選択します文字列値は"J.K. Rowling"です。

関連する問題