2015-07-20 147 views
1

XPATH是否提供始終不返回值的查詢?XPath查詢不匹配

例如,假設這個簡單的XML:

<foo> 
    <bar>hello, world</bar> 
</foo> 

類型//noelement的XPath查詢顯然不會返回任何元素,這是不錯,但感覺就像一個黑客攻擊。

我在想,如果規範強制要求保留值永遠不會匹配任何元素。像//NIL這將是一個有效的XPATH查詢,同時從不匹配任何元素。

回答

4

詹姆斯·克拉克(XPath 1.0中編輯)wrote

回覆:最佳實踐就空節點集合初始化

我喜歡 「/ ..」。我們確實考慮添加一個函數來返回一個空的節點集, ,但它確實沒有看到通過「../」購買任何東西。

當然,他郵件中的第二個xpath表達式是一個錯字。

因此,如果您想要像典型使用「/ ..」一樣編碼:根節點的父節點根據定義不存在。良好的XPath引擎應該識別這個表達式並將其優化爲一個空的節點集。

+0

確實'lxml.etree'(我正在使用的Python解析器)似乎認爲它是一個空的節點集。有趣的概念。謝謝 – lorenzog