我需要编写一个XPath表达式来计算键'ErrorCode‘的值是否在XML处= -3025:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<esb:esb-header xmlns:esb="http://schemas.company.com/soa/esb">
<esb:params>
<esb:param>
<esb:param-name>ErrorCode</esb:param-name>
<esb:param-value>-3025</esb:param-value>
</esb:param>
</esb:params>
</esb:esb-header>
</soapenv:Envelope>请注意,元素有前缀。
发布于 2013-03-16 05:55:02
XPath 2.0:
/*:Envelope/*:esb-header/*:params/*:param[*:param-name='ErrorCode' and *:param-value='-3025']对于XPath 1.0,您可以改用local-name() (讨厌):
/*[local-name()='Envelope']/*[local-name()='esb-header']/*[local-name()='params']/*[local-name()='param'][*[local-name()='param-name']='ErrorCode' and *[local-name()='param-value']='-3025']如果您有办法声明这些名称空间,那么在1.0中使用前缀而不是local-name()会容易得多。
此外,您还可以将整个路径包装在boolean() (XPath 1.0/2.0)或exists() (XPath 2.0)中,以返回true或false。
https://stackoverflow.com/questions/15442591
复制相似问题