0

次のsoapメッセージが表示され、GetNewGUIDResultを抽出するためのxpathクエリの記述方法を知りたいですか?

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<ActivityId CorrelationId="06996737-224f-4004-9dad-042222b161fc" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">b89cdee8-18b4-4ea0-a5a1-7b10ace1b23e</ActivityId>
</s:Header>
<s:Body>
<GetNewGUIDResponse xmlns="http://bank.co.com/Service/2011_01/Service">
<GetNewGUIDResult>125959</GetNewGUIDResult>
</GetNewGUIDResponse>
</s:Body>
</s:Envelope>

いくつかのxpathコマンドを試しましたが、例外が発生しています。また、xmlnamespacemanagerの使用法についてもわかりません。

ありがとう

ヴァルン

4

1 に答える 1

4

XPath式は次のように機能するはずです。

/soap:Envelope/soap:Body/srv:GetNewGUIDResponse/srv:GetNewGUIDResult/text()

名前空間プレフィックスを宣言する必要があります。使用しているAPIはわかりませんが、上記の式を機能させるには、次の名前空間プレフィックスを宣言する必要があります。

石鹸-> http://schemas.xmlsoap.org/soap/envelope/srv- > http://bank.co.com/Service/2011_01/Service

名前空間を宣言せず、XPath 2.0プロセッサを使用している場合は、次のことも実行できます(ただし、お勧めしません)。

/s:Envelope/s:Body/*[namespace-uri()='http://bank.co.com/Service/2011_01/Service' and local-name()='GetNewGUIDResponse']/*[namespace-uri()='http://bank.co.com/Service/2011_01/Service' and local-name()='GetNewGUIDResult']

于 2012-05-19T09:18:00.573 に答える