2017-09-12 1 views
0

Hier ist meine eingehende Nutzlast.XPath3 Problem in Mule

<?xml version="1.0" encoding="UTF-8"?> 
    <detail><ns1:SiperianRequestFault xmlns:ns1="urn:siperian.api"> 
    <ns1:requestName>SearchQuery</ns1:requestName> 
    <ns1:errorCode>SIP-18018</ns1:errorCode> 
    <ns1:errorMessage>SIP-18018: Request not recognized by the user profile providers. 
Review the server log for more details.</ns1:errorMessage> 
</ns1:SiperianRequestFault></detail> 

wenn ich Abfrage für

xpath3('//detail')

hier ist der Ausgang

SearchQuerySIP-18018SIP-18018: Request not recognized by the user profile providers.Review the server log for more details. 

Aber was ich will ist die errorCode, errorMessage usw.

Antwort

1

Bitte zu extrahieren #[xpath3('/detail/*:SiperianRequestFault/*:errorCode')] zu bekomme errorCode. Ich habe *: für die Definition von Namespace-Platzhalter verwendet. Wenn Sie Namespace verwenden möchten, können Sie es als

<mulexml:namespace-manager includeConfigNamespaces="true"> 
    <mulexml:namespace prefix="ns1" uri="urn:siperian.api" /> 
</mulexml:namespace-manager> 

definieren, dann wird Ausdruck wie #[xpath3('/detail/ns1:SiperianRequestFault/ns1:errorCode')]

Hoffnung sein, das hilft.

+0

Vielen Dank bro !! – Dhanjeet