您好我对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>
这是xpath查询及其结果
/*
- 返回元素“name”
/*/text()
- 返回文本“Java and XML”
/name
- 没有结果
/name/text()
- 没有结果
为什么指定名称没有给出任何结果?
答案 0 :(得分:1)
这是因为元素name
在http://localhost/book
中声明。因此,在XPath查询中,您应该指定它。通常,您应该传递给XML引擎名称空间并使用前缀,然后使用完全限定名称查询XML,即:
/ns:name/text()
但是,您可以在查询中使用指定名称空间的其他技术,即:
/*[local-name() = 'name' and namespace-uri() = 'http://localhost/book']
答案 1 :(得分:0)
了解NamespaceManager以及如何在EditX中使用:http://www.japisoft.com/doc-editix/manual/index.html#mozTocId544189