oracle有一个包xmldom,可以很方便的创建xml文件.举个简单的例子.生成test.xml,内容如下
arwen
123
tom
456
---------------------------------------------------------------------------------------------------------------------------------------
--生成xml的代码declare
doc xmldom.domdocument;
doc_node xmldom.domnode;
root_node xmldom.domnode;
user_node xmldom.domnode;
item_node xmldom.domnode;
root_elmt xmldom.domelement;
user_elmt xmldom.domelement;
item_elmt xmldom.domelement;
item_text xmldom.domtext;
begin
doc := xmldom.newdomdocument;
xmldom.setversion(doc, '1.0');
xmldom.setcharset(doc, 'utf-8');
--根节点
doc_node := xmldom.makenode(doc);
root_elmt := xmldom.createelement(doc,'staff');
xmldom.setattribute(root_elmt,'content ','name and id');
root_node:=xmldom.appendchild(doc_node, xmldom.makenode(root_elmt));
--节点1
user_elmt := xmldom.createelement(doc,'member');
user_node :=xmldom.appendchild(root_node, xmldom.makenode(user_elmt));
item_elmt :=xmldom.createelement(doc,'name');
item_node :=xmldom.appendchild(user_node, xmldom.makenode(item_elmt));
item_text := xmldom.createtextnode(doc,'arwen');
item_node:=xmldom.appendchild(item_node, xmldom.makenode(item_text));
item_elmt :=xmldom.createelement(doc,'eno');
item_node :=xmldom.appendchild(user_node, xmldom.makenode(item_elmt));
item_text := xmldom.createtextnode(doc,'123');
item_node:=xmldom.appendchild(item_node, xmldom.makenode(item_text));
--节点2
user_elmt := xmldom.createelement(doc,'member');
user_node :=xmldom.appendchild(root_node, xmldom.makenode(user_elmt));
item_elmt :=xmldom.createelement(doc,'name');
item_node :=xmldom.appendchild(user_node, xmldom.makenode(item_elmt));
item_text := xmldom.createtextnode(doc,'tom');
item_node:=xmldom.appendchild(item_node, xmldom.makenode(item_text));
item_elmt :=xmldom.createelement(doc,'eno');
item_node :=xmldom.appendchild(user_node, xmldom.makenode(item_elmt));
item_text := xmldom.createtextnode(doc,'456');
item_node:=xmldom.appendchild(item_node, xmldom.makenode(item_text));
--写入操作系统文件中
xmldom.writetofile(doc,'dir'||'\test.xml');--注意必须先创建一个文件目录dir
--可以通过语句 : create or replace directory dir as 'd:\temp'
xmldom.freedocument(doc);
end;
这样生成xml文件非常方便,能满足一般的应用了.但是xmldom有个缺点,就是一次性在内存中生成所有xml文件内容,然后写入到磁盘文件中.如果xml文件太大,比如说有个table有几个g,想把它保存成xml文件.这样可能就会出现内存不足,生成文件失败.那该咋整呢?
,
