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
Java 标识具有不同命名空间绑定的元素_Java_Xpath - Fatal编程技术网

Java 标识具有不同命名空间绑定的元素

Java 标识具有不同命名空间绑定的元素,java,xpath,Java,Xpath,我有一个xml,它看起来像这样。 注意:对于两个AuthenticationPolicy元素,ms xrm命名空间的映射方式不同 <ms-xrm:AuthenticationPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2011/Contracts/Services"> <ms-xrm:Authentication>LiveId</ms-xrm:Authentication> </

我有一个xml,它看起来像这样。 注意:对于两个AuthenticationPolicy元素,ms xrm命名空间的映射方式不同

<ms-xrm:AuthenticationPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2011/Contracts/Services"> 
     <ms-xrm:Authentication>LiveId</ms-xrm:Authentication>
</ms-xrm:AuthenticationPolicy>

<ms-xrm:AuthenticationPolicy xmlns:ms-xrm="http://schemas.microsoft.com/xrm/2012/Contracts/Services"> 
    <ms-xrm:Authentication>OnlineFederation</ms-xrm:Authentication>
</ms-xrm:AuthenticationPolicy>
我两种元素都有。我试过了

//AuthenticationPolicy[namespace-uri()='http://schemas.microsoft.com/xrm/2012/Contracts/Services']
这给了我一张空名单。正确的语法是什么?

你说你想要“恰好是这些元素”,但你暗示给出两个元素的表达式是错误的,所以我想你可能只想要第二个

询问

//ms-xrm:AuthenticationPolicy
不应该给你两种元素;它应该根据名称空间前缀ms xrm的绑定方式提供一个或另一个。在XPath中,命名空间前缀只能绑定到一个命名空间。您没有说明正在使用什么XPathAPI,或者名称空间前缀是如何绑定的,但它必须引用两个名称空间中的一个,并确定选择哪个元素。XPath中使用的名称空间前缀与源文档中的前缀没有关系(除非您的API使它们以这种方式初始化)。如果您所说的是正确的,则这是XPath处理器中的一个错误

//ms-xrm:AuthenticationPolicy