《使用PLSQL开发人员如何解析XML文件(原创)》由会员分享,可在线阅读,更多相关《使用PLSQL开发人员如何解析XML文件(原创)(12页珍藏版)》请在金锄头文库上搜索。
1、使用PL/SQL程序如何解析XML(原创)学习篇-XML文件解析文档作者:Siman.He MSN : Simanhe_创建日期:2009-5-22更新日期:2009-5-22文档编号:当前版本:Draft 1.0Note: Title, Subject, Last Updated Date, Reference Number, and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change
2、 any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.文档控制变更记录3日期作者版本变更说明07/04/08IBM1.0初版审阅姓名职位分发拷贝编号姓名位置/岗位1资料室主管项目资料室2项目组成员34Note: The copy numbers referenced abov
3、e should be written into the Copy Number space on the cover of each distributed copy. If the document is not controlled, you can delete this table, the Note To Holders, and the Copy Number label from the cover page.目录文档控制ii概述4XML组建4XML结构图4XML常用的分析函数5XMLParser5XMLDOM5XML解析实例7文件的结构8解析方案8XML解析脚本9更改历史12
4、Note: To update the table of contents, put the cursor anywhere in the table and press F9. To change the number of levels displayed, select the menu option InsertIndex and Tables, make sure the Table of Contents tab is active, and change the Number of Levels to a new value.使用PLSQL开发人员如何解析XML文件.doc 此文
5、档仅做学习参考之用 第2 页共 12页 概述使用XML文件传输数据,现在已经被越来越多的项目所采纳。其做法通常是用额外开发的java 程序来解析XML数据。其实Oracle已经为XML配备了一套功能健全的工具集,该工具集允许PL/SQL和Java开发人员在Oracle数据库内部进行工作。本文简要地概述了XML特性和适用于Oracle数据库的实用程序,描述如何设置并使用面向XML的Oracle PL/SQL分析程序,然后介绍了一个实例程序,该程序分析PL/SQL内的XML信息。XML组建在PL/SQL中利用XML ,Oracle提供了几个组件,让开发人员能轻松地利用XML技术。这些组件包括: 1
6、. XML 分析程序。即用来分析、构造和验证XML文档。. 2. XPath 引擎。 它是使用Xpath(XML标准的另一个元素)说明语法在内存中搜索XML文档的实用程序。 SLT 处理器。 它在Oracle数据库中支持XSLT,允许您把XML文档转换成其他格式。 3. XML SQL 实用程序。可以使用SQL产生XML文档,使您可以在Oracle数据库表格中轻松地插入基于XML的数据。 XSQL 页。一项可以汇集声明性XML数据然后通过XSLT公布这些数据的技术。 对于PL/SQL开发人员而言,XML分析程序是最重要的组件。通过它,您可以在Oracle数据库中分析、操纵和转换XML文档。ML
7、分析程序由一套APIs(应用程序编程接口)构成。XML结构图XML常用的分析函数XMLParser包括分析XML文档所需的数据类型和程序。XML Parsing Process想知道Oracle的parser是如何调用Java来做解析的,请查看Oracle XML Developers Kit Programmers Guide10g Release 2 (10.2)Part Number B14252-01网址: http:/ := dbms_xslprocessor.selectnodes(rootnode, xpath) dbms_xslprocessor.valueof(节点,节点下的
8、元素,值) 具体的实例,会在下面讲解。XMLDOM 包括管理和建立XML文档对象模型(DOM)元素所需的数据类型和程序Comparing DOM (Tree-Based) and SAX (Event-Based) APIsXMLDOM 这个程序包,其实是通过封装Java 程序来解析XML 的一个PL/SQL的包。具体的作用还是要参考Oracle Database PL/SQL Packages and Types Reference10g Release 2 (10.2)Part Number B14258-02网址: http:/ XML文件 :simanhe_test.xml2001 测
9、试1 滘滘生僻字 测试2 看一看 测试3 瞅一瞅 测试4 试一试 测试5 爽一爽 文件的结构解析方案在XML DOM的解析过程中, 如果想找某个节点(Fitem)的属性(RecErrCode),而该节点又不是根节点时,需要从最小的节点往上找父节点,一直到节点Fitem,然后在得到其属性。如果节点是根节点,则可以直接得到根节点的元素和属性的值。根据上图所示,我们要找根节点Dfile的元素和属性的值,直接调用 。XML解析脚本Oracle通过调用API xmldom和dbms_xmlparser来做XML文件的解析。.建立一个 Directory ,假如在EBS上实现则需要在EBS DB的服务器上
10、建立路径如: Create Or Replace Directory FTP_XXX As /var/tmp/ftp 直接在APPS下就可以新建要查找当前建立的Directory 可以使用 Select * From all_directories 查找当前系统中的所有的 Directory . . 代码如下 DECLARE p_max_size NUMBER := dbms_lob.lobmaxsize; src_offset NUMBER := 1; dst_offset NUMBER := 1; lang_ctx NUMBER := nls_charset_id(UTF8); defau
11、lt_csid CONSTANT INTEGER := nls_charset_id(ZHS16GBK); warning NUMBER; l_file_number PLS_INTEGER := 0; l_count NUMBER; l_bfile BFILE; l_clob CLOB; l_commitelement xmldom.domelement; l_parser dbms_xmlparser.parser; l_doc dbms_xmldom.domdocument; l_nl dbms_xmldom.domnodelist; l_n dbms_xmldom.domnode; rootnode dbms_xmldom.domnode; parent_rootnode dbms_xmldom.domnode; file_length NUMBER; block_size BINARY_INTEGER; l_rootnode_name VARCHAR2(200); l_status