55: X_COL_VALUE_LIST OUT NOCOPY CSM_VARCHAR_LIST,
56: p_fix_esc_chars IN BOOLEAN:=false)
57:
58: AS
59: l_xml_doc xmldom.DOMDocument;
60: l_xml_parser xmlparser.Parser;
61: l_xml_node_list xmldom.DOMNodeList;
62: l_xml_node xmldom.DOMNode;
63: l_xml_node_len NUMBER;
57:
58: AS
59: l_xml_doc xmldom.DOMDocument;
60: l_xml_parser xmlparser.Parser;
61: l_xml_node_list xmldom.DOMNodeList;
62: l_xml_node xmldom.DOMNode;
63: l_xml_node_len NUMBER;
64: len2 number;
65: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
58: AS
59: l_xml_doc xmldom.DOMDocument;
60: l_xml_parser xmlparser.Parser;
61: l_xml_node_list xmldom.DOMNodeList;
62: l_xml_node xmldom.DOMNode;
63: l_xml_node_len NUMBER;
64: len2 number;
65: l_COL_NAME_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
66: L_COL_VALUE_LIST CSM_VARCHAR_LIST := CSM_VARCHAR_LIST();
69: l_xml_parser := xmlparser.newParser;
70: xmlparser.parseClob(l_xml_parser, l_xml_clob_payload);
71: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
72: xmlparser.freeParser(l_xml_parser);
73: l_xml_node_list := xmldom.getElementsByTagName(l_xml_doc, '*');
74: L_XML_NODE_LEN := XMLDOM.GETLENGTH(L_XML_NODE_LIST);
75: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
76: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
77: -- loop through elements
70: xmlparser.parseClob(l_xml_parser, l_xml_clob_payload);
71: L_XML_DOC := XMLPARSER.GETDOCUMENT(L_XML_PARSER);
72: xmlparser.freeParser(l_xml_parser);
73: l_xml_node_list := xmldom.getElementsByTagName(l_xml_doc, '*');
74: L_XML_NODE_LEN := XMLDOM.GETLENGTH(L_XML_NODE_LIST);
75: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
76: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
77: -- loop through elements
78: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
75: L_COL_NAME_LIST.EXTEND(L_XML_NODE_LEN);
76: l_COL_VALUE_LIST.EXTEND(l_xml_node_len);
77: -- loop through elements
78: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
79: l_xml_node := xmldom.item(l_xml_node_list, i);
80:
81: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
82: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
83: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
77: -- loop through elements
78: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
79: l_xml_node := xmldom.item(l_xml_node_list, i);
80:
81: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
82: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
83: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
84: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
85: IF p_fix_esc_chars THEN
78: FOR I IN 2..L_XML_NODE_LEN-1 LOOP
79: l_xml_node := xmldom.item(l_xml_node_list, i);
80:
81: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
82: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
83: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
84: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
85: IF p_fix_esc_chars THEN
86: l_COL_VALUE_LIST(i-1):=replace(replace(replace(l_COL_VALUE_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
79: l_xml_node := xmldom.item(l_xml_node_list, i);
80:
81: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
82: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
83: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
84: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
85: IF p_fix_esc_chars THEN
86: l_COL_VALUE_LIST(i-1):=replace(replace(replace(l_COL_VALUE_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
87: END IF;
80:
81: l_COL_NAME_LIST(i-1) := xmldom.getNodeName(l_xml_node);
82: L_XML_NODE := XMLDOM.GETFIRSTCHILD(L_XML_NODE);
83: If xmldom.getNodeType(l_xml_node) = xmldom.TEXT_NODE THEN
84: l_COL_VALUE_LIST(i-1) := xmldom.getNodeValue(l_xml_node);
85: IF p_fix_esc_chars THEN
86: l_COL_VALUE_LIST(i-1):=replace(replace(replace(l_COL_VALUE_LIST(i-1),'%amp;',fnd_global.local_chr(38)),'%lt;','<'),'%gt;','>');
87: END IF;
88: ELSE