2017-02-28 84 views
0

我有一个像下面获取SOAP体内部的节点的值文本,如果节点改变

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.revenue.ie/ras/webservices"> 
    <soapenv:Header> 
     <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsse:UsernameToken wsu:Id="UsernameToken-1"> 
      <wsse:Username>test</wsse:Username> 
      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password> 
      <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">BWyAGdlqp5ZuySEwHUfniA==</wsse:Nonce> 
      <wsu:Created>2014-07-24T09:43:16.665Z</wsu:Created> 
     </wsse:UsernameToken> 
     </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
    <thisNodeChanges> 
<string xsi:type="xsd:string">DATAHERE</string> 
</thisNodeChanges> 
    </soapenv:Body> 
</soapenv:Envelope> 

我怎样才能文本值“DATAHERE”使用XPath如果从要求“thisNodeChanges”更改请求SOAP请求“串”也是如此。

如果我做//string/text()它的作品,但它并不总是被称为字符串。

感谢

回答

0

我觉得这可能是工作:

'//*[name()="soapenv:Body"]/*/*/text()'