سؤال

أحاول وضع مستند 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top