Xml 解析Xpath查询
嗨,我对XPath有疑问 我的xml文件如下所示Xml 解析Xpath查询,xml,xpath,Xml,Xpath,嗨,我对XPath有疑问 我的xml文件如下所示 <?xml version="1.0" encoding="UTF-8"?> <name xmlns="http://localhost/book" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost/book books.xsd"> Java and XML </name>
<?xml version="1.0" encoding="UTF-8"?>
<name xmlns="http://localhost/book" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost/book books.xsd">
Java and XML
</name>
Java和XML
下面是xpath查询及其结果
/*
-返回元素“name”
/*/text()
-返回文本“Java和XML”
/name
-无结果
/name/text()
-无结果
为什么指定名称不会给出任何结果?这是因为元素
名称
在http://localhost/book
。因此,在XPath查询中应该指定它。通常,您应该传递到XML引擎名称空间和它的前缀,然后使用完整的限定名查询XML,即:
/ns:name/text()
但是,您可以使用其他技术在查询中指定名称空间,即:
/*[local-name() = 'name' and namespace-uri() = 'http://localhost/book']
在此处阅读有关NamespaceManager以及如何在EditX中使用它的信息:可能是因为
名称
节点缺少命名空间。如何在XSL文件或应用程序中使用XPath查询?您能提供更多信息吗?/ns:name/text()-这是报告它无法解析ns。我在xml中将xmlns=”“更改为xmlns:ns=“”file@GaneshP,这是因为您应该在XML引擎中传递此信息,换句话说,您的XML引擎需要知道如何将名称空间与前缀关联起来。谢谢Kirill。我实际上使用的是editixxml编辑器。因此,应该有某种方法在编辑器中指定它。