1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
FUNCTION Fc_Decode_retour_XML (p_XML_retour IN CLOB) RETURN NUMBER
IS
l_Parser XmlParser.Parser;
l_doc XMLDOM.DOMDocument;
l_Node_Command XmlDom.DomNode;
l_Node_Failure XmlDom.DomNode;
l_Node_Msg XmlDom.DomNode;
l_message_erreur varchar2(1024);
l_i_retour integer;
BEGIN
l_Parser := XmlParser.NewParser;
XmlParser.SetValidationMode(l_Parser, FALSE);
XmlParser.ParseClob(l_Parser, p_XML_retour);
l_doc := XmlParser.GetDocument(l_Parser);
XmlParser.FreeParser(l_Parser);
l_Node_Command := xslprocessor.selectNodes(l_doc, 'command');
l_Node_Failure := xslprocessor.selectNodes(l_Node_Command, 'failure_data');
l_i_retour := to_number(xslprocessor.VALUEOF(l_Node_Failure, 'code'));
l_Node_msg := xslprocessor.selectNodes(l_Node_Failure, 'msg');
l_MESSAGE_ERREUR := xslprocessor.selectNodes(l_Node_msg, xmldom.CDATA_SECTION_NODE);
dbms_output.put_line(l_message_erreur);
XmlParser.FreeParser(l_Parser);
RETURN l_i_retour;
EXCEPTION
WHEN OTHERS THEN
XmlParser.FreeParser(l_Parser);
return SQLCODE;
END Fc_Decode_retour_XML; |
Partager