oracle 生成 xml

本文介绍了一种使用Oracle数据库生成XML文件的方法。通过定义存储过程并利用DOM接口操作XML文档,可以将数据库表中的数据转换为XML格式。示例展示了如何创建XML元素及属性,并将表中的每一项数据作为子节点加入到XML文档中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近研究了下,用oracle 怎么生成 xml 的方法,具体如下:

---将数据库中数据 转成 xml -----
create or replace procedure table2xml is
cursor person_cur is select * from people;
person_data people%rowtype;
doc xmldom.DOMDocument;
main_node xmldom.DOMNode;
root_node xmldom.DOMNode;
item_node xmldom.DOMNode;
person_node xmldom.DOMNode;
root_elem xmldom.DOMElement;
item_elem xmldom.DOMElement;
item_text xmldom.DOMText;
begin
open person_cur;
doc := xmldom.newDOMDocument;--创建文档对象
main_node := xmldom.makeNode(doc);--读取文档节点
root_elem := xmldom.createElement(doc,'people'); --添加一个元素(节点)
root_node := xmldom.appendChild(main_node,xmldom.makeNode(root_elem));

loop
fetch person_cur into person_data;
exit when person_cur%notfound;

item_elem := xmldom.createElement(doc,'peopleNo'); --添加 peopleNo 元素
xmldom.setAttribute(item_elem,'peopleID',person_data.personid);--添加peopleNo 属性
person_node:= xmldom.appendChild(root_node,xmldom.makeNode(item_elem));--添加为文档的子节点


item_elem :=xmldom.createElement(doc,'name');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.name); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中

item_elem :=xmldom.createElement(doc,'address');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.address); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中

item_elem :=xmldom.createElement(doc,'tel');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.tel); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中

item_elem :=xmldom.createElement(doc,'fax');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.fax); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中

item_elem :=xmldom.createElement(doc,'email');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.emall); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中

end loop;
xmldom.writeToFile(doc,'e:\person.xml');
xmldom.freeDocument(doc);
close person_cur;

end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值