我正在尝试将多个部分组合成一个 XML 文档。为了获取数据,我进行了几次查询,其结果都是 XMLType。
我找到了一个名为 getNodeFromFragment
的函数在 xmldom 包中,看起来它可以获取这些 XMLType 并返回包含它们的 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 有什么技巧吗?
最佳答案
您好,FrusteratedWithFormsDesigner,
以下将从 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>
关于xml - pl/sql : converting xmltype to node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834066/