2012-08-08 57 views
0

我有xml文件XPATH 2.0創建查詢

<?xml version="1.0" encoding="UTF-8"?> 
<quo:Zaklad xmlns:quo="http://www.xxx.com/XMLSchema/Zaklad" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xxx.com/XMLSchema/xxx.xsd" quo:nr="356-12"> 
    <quo:id_produktu>304</quo:id_produktu> 
    <quo:wersja_produktu>3</quo:wersja_produktu> 
    <quo:Nazwa_produktu> 
</quo:Zaklad> 

如何創建的XPath 2.O其返回id_produktu查詢?

+0

按Vaman的評論的更多信息,你需要的節點的名稱,沒有命名空間(id_produktu),或者你需要的節點(304)的值? – StuartLC 2012-08-08 15:33:06

回答

0

可以使用本地名稱命名空間獲取XPath的不可知,就像這樣:

/*[local-name()='Zaklad']/*[local-name()='id_produktu']/text() 
+0

我認爲這個XPath會返回節點'id_produktu'的文本,而OP有興趣獲得節點名'id_produktu' – 2012-08-08 15:30:21

+0

@VamanKulkarni - 好點--OP的問題是不明確的。我已發佈評論給OP。 – StuartLC 2012-08-08 15:33:38

0

假設你正在使用一個命名空間管理器中設置了相同的命名空間,你可以使用下面的簡單情況?

/quo:Zaklad/quo:id_produktu 
0

您可以使用local-name()函數來獲取節點的名稱。

local-name(/*/quo:id_produktu) 

上面的xpath表達式會返回你id_produktu。您應該讓Xpath引擎通過使用您選擇的編程語言來了解xpath中存在的名稱空間前綴。

你可以在這個功能here