Body
要素のxsi:type
属性の値を返す正しいXPath式を判別しようとしています。私は運がなければすべてのように思えるものを試しました。私がこれを読んだことに基づいて、近いと思われるが、それは明らかに正しいquireではない。私は最後に安静に置くことができるように任意のクイックガイダンス?xpathでxsi:typeの値を取得する
//v20:Body/@xsi:type
が、私はそれが
<v20:MessageV1Request>
<v20:Header>
<v20:Source>
<v20:Name>SOURCE_APP</v20:Name>
<v20:ReferenceId>1326236916621</v20:ReferenceId>
<v20:Principal>2001</v20:Principal>
</v20:Source>
</v20:Header>
<v20:Body xsi:type="v20:SmsMessageV1RequestBody">
<v20:ToAddress>5555551212</v20:ToAddress>
<v20:FromAddress>11111</v20:FromAddress>
<v20:Message>TEST</v20:Message>
</v20:Body>
</v20:MessageV1Request>
Xpath式がうまく見えます。このXpathをXQUERYやXSLTなどで使用していますか?ここで問題となる可能性が最も高いのは、名前空間の接頭辞による混乱です。混乱の原因となる名前空間を排除する方法の1つは、xpathを次のように書き換えることです:// * [local-name()eq 'Body']/@ * [local-name()eq 'type'] –
Murrayが正しいXPathのネームスペースを処理する方法は一般的に2つあります。最初に、 'local-name()'と 'namespace-uri()' XPath関数を使用します。標準のJAXPでは、接頭辞を名前空間にマップする適切に構成されたNamespaceContextを使用する必要があります。 –