0

キー 'ErrorCode' の値が XML で -3025 かどうかを評価する XPath 式を記述する必要があります。

<?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>

要素にはプレフィックスがあることに注意してください。

4

1 に答える 1

0

XPath 2.0:

/*:Envelope/*:esb-header/*:params/*:param[*:param-name='ErrorCode' and *:param-value='-3025']

XPath 1.0 の場合、local-name()代わりに使用できます (yuck):

/*[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) または(XPath 2.0) でラップして、またはexists()を返すこともできます。truefalse

于 2013-03-15T21:55:02.193 に答える