pl / sql: تحويل xmltype إلى العقدة
سؤال
أحاول وضع مستند XML من عدة قطع. للحصول على البيانات، كان لدي العديد من الاستفسارات التي كانت نتائجها xmltypes.
لقد وجدت وظيفة اسمه getNodeFromFragment
في حزمة XMLDOM التي تبدو وكأنها يمكن أن تأخذ هذه xmltypes وإرجاع domnode التي تحتوي عليها، ولكن لا يبدو أنها تعمل.
مثال بسيط هنا:
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;
/
طباعة <test/>
العنصر يعمل بشكل جيد، ولكن عندما أحاول طباعة الجزء كعقدة، لا شيء هو الإخراج.
أي نصائح حول getnodefromfragment؟
المحلول
مرحبا بالحبال
سيؤدي ما يلي كائن Domnode من xmltype:
node := dbms_xmldom.makenode(dbms_xmldom.newDOMDocument(XMLType(
'<outer><inner>soemthing</inner><inner>somethingelse</inner></outer>')));
هذا سوف يخرج:
buffer: <outer>
<inner>soemthing</inner>
<inner>somethingelse</inner>
</outer>
لا تنتمي إلى StackOverflow