我想選擇具有給定名稱空間(前綴)的文檔中的最頂層元素。使用XPath在名稱空間中選擇元素
更具體地說:我有一些以/ html/body開頭(在XHTML命名空間中)或者在特定命名空間中有幾個元素之一的XML文檔。我實際上想要去掉/ html/body,並返回正文內容或整個根名稱空間元素。
我想選擇具有給定名稱空間(前綴)的文檔中的最頂層元素。使用XPath在名稱空間中選擇元素
更具體地說:我有一些以/ html/body開頭(在XHTML命名空間中)或者在特定命名空間中有幾個元素之一的XML文檔。我實際上想要去掉/ html/body,並返回正文內容或整個根名稱空間元素。
在XPath 2.0和XQuery 1.0中,您可以使用謂詞中的in-scope-prefixes()函數對名稱空間前綴進行測試。 例如
//*[in-scope-prefixes(.)='html']
如果您不能使用V2,XPath 1.0中,你可以使用namespace-uri()功能測試針對的命名空間本身。 例如
//*[namespace-uri()='http://www.w3c.org/1999/xhtml']
應該是:`http:// www.w3.org/1999/xhtml` – Alp 2011-11-01 11:12:55
,我想XPath表達式是:
/html:html/html:body/node()|/foo:*
凡「HTML」前綴被映射到XHTML命名空間,而「foo」的前綴映射到我的目標命名空間。
在編寫我的文章的過程中,我偶然發現了一個工作解決方案,所以我社區擁有這個問題,然後發佈答案。請享用! – 2008-09-22 00:01:29