Xslt Xpath使用local-name()查找特定元素值的属性值
我有下面提到的有效载荷Xslt Xpath使用local-name()查找特定元素值的属性值,xslt,xpath,wso2ei,Xslt,Xpath,Wso2ei,我有下面提到的有效载荷 <A xmlns:com="http://www.example.com/xml/xmlns/example"> <B> <X appCode="001">xxx</X> <Y appId="0002">yyy</Y> </B> <C> <D
<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>
xxx
yyy
测试-1
测试-2
测试-3
测试-4
我需要获取A/C/D/E/F['test-2']的id值。此外,我还必须使用local-name()来避免使用名称空间。
尝试以下操作并获得以下结果
//*[local-name()='C']/*[local-name()='D']/*[local-name()=
'E']/*[local-name()='F']
test-1
测试-2
测试-3
测试-4
如何找到'test-2'的id值,即3?
(注意:我在wso2 EI属性中介中使用此选项)
提前谢谢你 好吧,举个例子,表达式:
//*[local-name() = 'F'][. = 'test-2']/@id
将返回3
但是,需要指出的是名称空间是要使用的,而不是要避免的。在样式表中声明名称空间,为其指定前缀,并使用前缀对元素进行寻址
还要注意,在给定的示例中,名称空间声明是完全冗余的。您可以简单地使用:
"//F[. = 'test-2']/@id"
或者更有效一点:
"/A/C/D/E/F[. = 'test-2']/@id"
好吧,举个例子,表达式:
//*[local-name() = 'F'][. = 'test-2']/@id
将返回3
但是,需要指出的是名称空间是要使用的,而不是要避免的。在样式表中声明名称空间,为其指定前缀,并使用前缀对元素进行寻址
还要注意,在给定的示例中,名称空间声明是完全冗余的。您可以简单地使用:
"//F[. = 'test-2']/@id"
或者更有效一点:
"/A/C/D/E/F[. = 'test-2']/@id"
这正是我需要的。关于名称空间,它的负载可能会有所不同,因此我需要忽略它。非常感谢您的支持!!这正是我需要的。关于名称空间,它的负载可能会有所不同,因此我需要忽略它。非常感谢您的支持!!这回答了你的问题吗?我以前看过这篇文章。这不是我要找的。我需要获取给定元素值的属性值。这是否回答了您的问题?我以前看过这篇文章。这不是我要找的。我需要获取给定元素值的属性值。