Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Java 使用元素路径在具有命名空间的xml中查找元素_Java_Xml - Fatal编程技术网

Java 使用元素路径在具有命名空间的xml中查找元素

Java 使用元素路径在具有命名空间的xml中查找元素,java,xml,Java,Xml,目前我有一个xml,如下所示 <ns0:transaction> <ns0:node1> asdf</ns0:node1> <ns0:node2> asdf</ns0:node2> <ns0:node3> asdf</ns0:node3> </ns0:transaction> asdf asdf asdf 我有路径/事务/节点1。但是由于名称空间的原因,我使用的java代

目前我有一个xml,如下所示

<ns0:transaction>
    <ns0:node1> asdf</ns0:node1>
    <ns0:node2> asdf</ns0:node2>
    <ns0:node3> asdf</ns0:node3>
</ns0:transaction>

asdf
asdf
asdf
我有路径/事务/节点1。但是由于名称空间的原因,我使用的java代码无法获取数据。你能推荐其他的java代码吗。我不允许在我拥有的路径中使用名称空间

关于,请尝试xpath

/*[local-name()='transaction']/*[local-name()='node1']

local name函数的结果是元素名没有名称空间前缀

为什么不能在XPath中使用NS前缀?我假设您可以控制Java源代码我们有不同的源代码发送不同的名称空间变量,这就是我们不能使用名称空间的原因您知道前缀是任意的并且是文档的本地前缀吗?事实上,NS绑定声明是本地的。因此,XML文档中的前缀可能与XPath中使用的前缀不同。重要的不是前缀,而是NS名称。您可以使用Java中XPath引擎的初始化步骤在前缀和NS名称之间进行映射。如果是这样的话,不要忘记通过勾选V标记将答案标记为已接受