我有如下所述的有效载荷。
<A xmlns:com="http://www.example.com/xml/xmlns/example">
<B>
<X appCode="001">xxx</X>
<Y appId="0002">yyy</Y>
</B>
<C>
<D>
<E>
<F id="1" code="001">test-1</F>
<F id="3" code="002">test-2</F>
<F id="4" code="003">test-3</F>
<F id="5" code="004">test-4</F>
</E>
</D>
</C>
</A>我需要得到A/C/D/E/F‘’test 2‘的id值。此外,我还必须使用local-name()来避免名称空间。尝试了以下步骤,并得到了以下结果。
//* local()= 'C'/* local-name() = 'D'/* local-name() = 'E'/* local-name() = 'F‘
<F id="1" code="001">test-1</F>
<F id="3" code="002">test-2</F>
<F id="4" code="003">test-3</F>
<F id="5" code="004">test-4</F>如何找到'test-2‘的id值,即3?(注意:我在wso2 EI属性中介中使用这个)
提前谢谢你!
发布于 2021-04-07 15:59:02
好吧,举你的例子,表达式:
//*[local-name() = 'F'][. = 'test-2']/@id将返回3。
但是,需要指出的是,名称空间是要使用的,而不是避免的。在样式表中声明名称空间,为其分配前缀,并使用前缀来处理元素。
还请注意,在给定的示例中,名称空间声明是完全多余的。你可以简单地使用:
"//F[. = 'test-2']/@id"或者说更有效率:
"/A/C/D/E/F[. = 'test-2']/@id"https://stackoverflow.com/questions/66989182
复制相似问题