PL / SQL: convertir XMLType al nodo
Pregunta
Estoy tratando de armar un documento XML a partir de varias piezas. Para obtener los datos, que tenía varias consultas cuyos resultados fueron XMLTypes.
He encontrado una función llamada getNodeFromFragment
en el paquete xmldom que parecía que se podría tomar estos XMLTypes y devolver una DOMNode que los contenía, pero no parece funcionar.
Un simple ejemplo aquí:
set serveroutput on;
declare
node xmldom.DOMNode;
node2 xmldom.DOMNode;
doc_node xmldom.DOMNode;
doc xmldom.DOMDocument;
el xmldom.DOMElement;
buf varchar2(1000);
begin
doc := xmldom.newDOMDocument;
el := xmldom.createElement(doc => doc, tagName => 'test');
node := xmldom.makeNode(elem => el);
xmldom.writeToBuffer(node, buf);
dbms_output.put_line('buffer: '||buf);
node := dbms_xmldom.getNodeFromFragment(XMLType('<outer><inner>soemthing</inner><inner>somethingelse</inner></outer>'));
xmldom.writeToBuffer(node, buf);
dbms_output.put_line('buffer: '||buf);
end;
/
Prensa elemento <test/>
funciona bien, pero cuando intento imprimir el fragmento como un nodo, no hay ninguna emisión.
¿Algún consejo sobre getNodeFromFragment?
Solución
Hola FrustratedWithFormsDesigner,
la siguiente creará un objeto DOMNode de un XMLType:
node := dbms_xmldom.makenode(dbms_xmldom.newDOMDocument(XMLType(
'<outer><inner>soemthing</inner><inner>somethingelse</inner></outer>')));
Esta es la salida:
buffer: <outer>
<inner>soemthing</inner>
<inner>somethingelse</inner>
</outer>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow