2012-08-08 54 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