2015-03-25 73 views
0

考慮下面的XML例子:請重複在XPath查詢結果

<books category="cat1"> 
    <book id="1" ... /> 
    <book id="2" ... /> 
    <book id="3" ... /> 
</books> 

如果我使用XPath查詢/books/book/parent::*/@category我預計僅接收 一行:

cat1 

然而,如何能將XPath查詢修改爲返回

cat1 
cat1 
cat1 

(意思是我想保留所有重複項)。

回答

1

的XPath 2.0你可以使用一個for循環:

for $book in /books/book return $book/parent::*/@category 
2

的 「/」 運算符的XPath自動刪除重複項。

在XPath 1.0中,您的要求存在一個基本難點:數據模型中支持的唯一組合值是節點集,而節點集(屬於集)不能包含重複項。所以不存在包含重複節點的值,因此沒有表達式會產生這樣的結果。