使用 Oracle XmlDom 包创建xml文件例程

来源:互联网 发布:工业设计用到的软件 编辑:程序博客网 时间:2024/05/23 19:16
create or replace procedure test_Create_xml is
doc         xmldom.DOMDocument;
node        xmldom.DOMNode;
i_Element   xmldom.DOMElement;
ii_Element  xmldom.DOMElement;
iii_Element xmldom.DOMElement;
iii_Text    xmldom.DOMText;
s clob;
RR varchar2(4000);
begin
 /*
 <Employees>
  <Person>
    <ID>00001</ID>
    <Name>张三</Name>
  </Person>
  <Person>
    <ID>00002</ID>
    <Name>李四</Name>
  </Person>
</Employees>
 */
   doc:=xmldom.newDOMDocument();
   xmldom.setVersion(doc, '1.0');
   xmldom.setCharset(doc, 'GB2312');

   i_Element := xmldom.createElement(doc,'Employees'); --节点i_Element
   xmldom.setAttribute(i_Element,'Tester','he_kai');

   ii_Element := xmldom.createElement(doc,'Person');   
   iii_Element := xmldom.createElement(doc,'ID');
   
   iii_Text := xmldom.createTextNode(doc,'00001'); --建立一个文本节点
   node := xmldom.appendChild(xmldom.makeNode(iii_Element), xmldom.makeNode(iii_Text)); --为ID节点添加内容
   node := xmldom.appendChild(xmldom.makeNode(ii_Element), xmldom.makeNode(iii_Element)); --把ID节点作为子节点添加给ii_Element

   iii_Element := xmldom.createElement(doc,'Name');
   iii_Text := xmldom.createTextNode(doc,'张三');
   node := xmldom.appendChild(xmldom.makeNode(iii_Element), xmldom.makeNode(iii_Text));
   node := xmldom.appendChild(xmldom.makeNode(ii_Element), xmldom.makeNode(iii_Element));
   node := xmldom.appendChild(xmldom.makeNode(i_Element), xmldom.makeNode(ii_Element));

   ii_Element := xmldom.createElement(doc,'Person');

   iii_Element := xmldom.createElement(doc,'ID');
   iii_Text := xmldom.createTextNode(doc,'00002');
   node := xmldom.appendChild(xmldom.makeNode(iii_Element), xmldom.makeNode(iii_Text));
   node := xmldom.appendChild(xmldom.makeNode(ii_Element), xmldom.makeNode(iii_Element));

   iii_Element := xmldom.createElement(doc,'Name');
   iii_Text := xmldom.createTextNode(doc,'李四');
   node := xmldom.appendChild(xmldom.makeNode(iii_Element), xmldom.makeNode(iii_Text));
   node := xmldom.appendChild(xmldom.makeNode(ii_Element), xmldom.makeNode(iii_Element));
   node := xmldom.appendChild(xmldom.makeNode(i_Element), xmldom.makeNode(ii_Element));


   node := xmldom.appendChild(xmldom.makeNode(doc), xmldom.makeNode(i_Element)); --确立节点i_Element 为根节点
   
   s:=' ';
   xmldom.writeToClob(doc,s);
   RR:=s;
   Dbms_Output.put_line(rr);
   xmldom.freeDocument(doc);
end test_Create_xml;

原创粉丝点击