2

いくつかの部分から XML ドキュメントをまとめようとしています。データを取得するために、結果が XMLTypes であるクエリをいくつか用意しました。

getNodeFromFragmentこれらの XMLTypes を取り、それらを含む DOMNode を返すように見える xmldom パッケージで名前が付けられた関数を見つけましたが、機能していないようです。

ここでの簡単な例:

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 に関するヒントはありますか?

4

1 に答える 1

3

FrustratedWithFormsDesigner さん、こんにちは。

次の例では、XMLType から DOMnode オブジェクトを作成します。

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>
于 2009-12-02T16:46:58.880 に答える