Я пытаюсь проанализировать FaultMessage из XML-ответа, используя EXTRACTVALUE.Ниже мой код SQL:
FaultMessage
EXTRACTVALUE
SELECT EXTRACTVALUE( XMLTYPE(' <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <s:Fault> <faultcode>s:Client</faultcode> <faultstring xml:lang="tr-TR">İstek şeması doğrulanamadı. Lütfen tüm bilgileri kontrol edin.</faultstring> <detail> <Fault xmlns="http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <FaultCode>Schema_Customer_005|1e8c66-c333-4357-9c7d-3f4fcd553</FaultCode> <FaulCategory>Schema</FaulCategory> <FaultMessage> Customer name can not be blank, can not contain spaces, or any special characters. LASTNAMEFIRSTNAME is the required format. </FaultMessage> <FaultDetailedMessage>UMUT DEMIRCI</FaultDetailedMessage> </Fault> </detail> </s:Fault> </s:Body> </s:Envelope>'), '/s:Envelope/s:Body/s:Fault/detail/*:Fault/FaultMessage', 'xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract" ') a FROM DUAL
Пожалуйста, предложите, как я могу получить FaultMessage.
Дано:
Fault
http://schemas.datacontract.org/2004/07/CustomServiceLibrary.DataContract
a
*
Измените
/s:Envelope/s:Body/s:Fault/detail/*:Fault/FaultMessage
на
/s:Envelope/s:Body/s:Fault/detail/a:Fault/a:FaultMessage
, чтобы ваш XPath был верным и не требовал XPath 2.0+ процессор.