以下是我正在使用的XML片段(还有更多),我尝试运行XPath表达式来查找ASIN
中的Item
节点确认Author
不是JK Rowling
时的部分。
我试过了:/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>
答案 0 :(得分:2)
可以通过XPath中的..
选择父级,但通常使用更高级别的谓词来更清晰:
//Item[not(ItemAttributes/Author="J.K. Rowling")]/ASIN
将选择ASIN
元素中没有Item
且字符串值为ItemAttributes/Author
的所有"J.K. Rowling"
元素。