> 데이터 베이스 > MySQL 튜토리얼 > Oracle包XMLDOM创建XML文件及其缺点

Oracle包XMLDOM创建XML文件及其缺点

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:08:54
원래의
1305명이 탐색했습니다.

Oracle有一个包XMLDOM,可以很方便的创建XML文件.举个简单的例子.生成Test.xml,内容如下 lt;staff content = name and idg

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文件.这样可能就会出现内存不足,生成文件失败.那该咋整呢?

linux

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿