Oracle dbms_xmldom-如何获取<;?xml标记
我试图使用PL/SQL包Oracle dbms_xmldom-如何获取<;?xml标记,oracle,plsql,Oracle,Plsql,我试图使用PL/SQL包dbms\u xmldom在XML文档的开头获取行。这是到目前为止的代码 declare l_dom dbms_xmldom.DOMDocument; l_clob clob; l_node dbms_xmldom.DOMNode; begin l_dom := dbms_xmldom.newDomDocument; l_node := dbms_xmldom.makeNode(l_dom); l_node := dbms_xmldom
dbms\u xmldom
在XML文档的开头获取行
。这是到目前为止的代码
declare
l_dom dbms_xmldom.DOMDocument;
l_clob clob;
l_node dbms_xmldom.DOMNode;
begin
l_dom := dbms_xmldom.newDomDocument;
l_node := dbms_xmldom.makeNode(l_dom);
l_node := dbms_xmldom.appendChild(l_node,
dbms_xmldom.makeNode(
dbms_xmldom.createElement(l_dom, 'root')
)
);
dbms_lob.createtemporary(l_clob, true);
dbms_xmldom.writeToClob(l_dom, l_clob);
dbms_output.put_line(l_clob);
end;
输出为:
<root/>
期望:
<?xml version="1.0" encoding="UTF-8"?>
<root/>
任何关于如何做到这一点的建议都会很好。仅供记录-以下是您需要添加的内容
dbms_xmldom.setVersion(l_dom, '1.0" encoding="UTF-8');
创建文档后,prolog通常通过XML序列化自动添加,因此您不需要自己添加,但如果您想添加,可以使用XMLRoot 生成XML的方法效率很低。您应该了解XMLElement、XMLForest、XMLAgg等 下面是一个简单的根和子示例,prolog只包含一行代码
select XMLRoot(XMLElement("root", XMLElement("child", 12)), version '1.0') from dual
<?xml version="1.0"?>
<root>
<child>12</child>
</root>
从dual中选择XMLRoot(XMLElement(“root”,XMLElement(“child”,12)),版本“1.0”)
12
我花了一点时间才找到这个答案。我刚刚放了一个片段,因为其余的代码都是使用PL/SQL生成其余的XML文档的。谢谢您的贡献。