Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 解析Xpath查询_Xml_Xpath - Fatal编程技术网

Xml 解析Xpath查询

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>

嗨,我对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>

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编辑器。因此,应该有某种方法在编辑器中指定它。