欢迎来到天天文库
浏览记录
ID:22389654
大小:51.00 KB
页数:12页
时间:2018-10-28
《oracle解析xmlnew》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ORACLE中解析XML、引言本文主要阐述一种在ORACLE中解析XML的实现方法。在oracle8i以及后期的版本中,开始提供了xmldom方式来实现对XML格式数据的处理,但在实际的业务信息系统应用开发中,更多的都习惯在程序中(如java,.net等开发语言提供的xml组件)来解析XML数据,很少直接在ORACLE数据库中来直接解析XML数据。2、现象描述当前,XML数据格式越来越多的应用于各种业务信息系统以及数据交换等应用范围,XML数据变得更加常见以及应用更为广泛。在oracle8i以及后期的版本中,开始提供了xmldom方式来实现对XML格
2、式数据的处理,但在实际的业务信息系统应用开发中,更多的都习惯在程序中(如java,.net等开发语言提供的xml组件)来解析XML数据,很少直接在ORACLE数据库中来直接解析XML数据。3、处理过程XML数据可以为字符串(适合处理较小的xml数据)、物理文件或CLOB字段(处理较大的xml数据字段);以如下的XML数据为例来描述该解析处理过程。XML数据格式示例如下:---单位名称JXDL3、>-年新增归档数330步骤1:定义或确定要解析的XML规则,如上。步骤2:创建XML解析器实例XMLPARSER.parser,如下:xmlParXMLPARSER.parser:=XMLPARSER.NEWPARSER;步骤3:定义DOM文档对象,如下:docxmldom.DOMDocument;步骤4:定义解析XML所需要的其他对象,如下:lenUnitinteger;lenIteminteger;unitNodesx
3、>
4、mldom.DOMNodeList;itemNodesxmldom.DOMNodeList;chilNodesxmldom.DOMNodeList;tempNode_unitxmldom.DOMNode;tempNodexmldom.DOMNode;tempArrMapxmldom.DOMNamedNodeMap;--================================--以下变量用于获取XML节点的值namevarchar2(50);valuevarchar2(20);tmpinteger;--=====================
5、===========xmlClobDataclob;步骤5:获取xml数据,以下假设从数据表的clob字段中获取取,如下:selectdatastringintoxmlClobDatafromp_xml_datainfotwhere……;步骤6:解析xml数据,如下xmlPar:=xmlparser.newParser;--xmlparser.parseBuffer(xmlPar,xmlString);--xmlparser.parseClob(xmlPar,xmlClobData);doc:=xmlparser.getDocument(xmlPa
6、r);--释放解析器实例xmlparser.freeParser(xmlPar);--获取所有unit元素unitNodes:=xmldom.getElementsByTagName(doc,'unit');lenUnit:=xmldom.getLength(unitNodes);--遍历所有unit元素FORiin0..lenUnit-1LOOP--获取第i个unittempNode_unit:=xmldom.item(unitNodes,i);itemNodes:=xmldom.getChildNodes(tempNode_unit);lenIt
7、em:=xmldom.getLength(itemNodes);FORjin0..lenItem-1LOOPtempNode:=xmldom.item(itemNodes,j);--获取子元素的值chilNodes:=xmldom.getChildNodes(tempNode);tmp:=xmldom.GETLENGTH(chilNodes);name:=xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,0)));value:=xmldom.getNodeValue(xmld
8、om.getFirstChild(xmldom.item(chilNodes,1)));DBMS_outpu
此文档下载收益归作者所有