我有一个XML SOAP结果:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateCIInStockResponse xmlns="http://somenamespace.com/">
<CreateCIInStockResult>
<Status>OK</Status>
<Data>SOMERESULT</Data>
</CreateCIInStockResult>
</CreateCIInStockResponse>
</soap:Body>
</soap:Envelope>
如您所见,CreateCIInStockResponse中定义的命名空间使用了默认命名空间——没有定义前缀。
如果我们使用,我可以获取Status和Data:
/soap:Envelope/soap:Body/node()/node()/node()/text()
我理解你的意思是,使用XPath无法直接访问“Data”内容,是这样吗?
我的问题是,我既不能修改对Web服务的调用,也不能修改从Web服务返回的结果。我唯一能做的就是使用XPath获取我的数据。
有什么建议吗?