declare
results CLOB;
p xmlparser.Parser;
document xmldom.DOMDocument;
rootelement xmldom.DOMElement;
stockRecord xmldom.DOMElement;
fieldsSet stockmarket%rowtype;
tempelement xmldom.DOMElement;
textnode xmldom.DOMNode;
tempnode xmldom.DOMNode;
--type ref_cur is ref cursor return ref_cur;
--user_cur ref_cur;
--sqlstr varchar2;定义用户输入的sql语句
--终极目标,使用动态游标实现(待解决问题 1、数组 2、获得游标的列数)
stock_code char(6);
stock_name varchar2(50);
stock_shortname varchar2(30);
cursor user_cur is
select * from stockmarket;
begin
document:=xmldom.newDOMDocument;--建立document文档对象
rootelement:=xmldom.createElement(document,'Stocktable');--建立该对象的根元素
open user_cur;
loop
fetch user_cur into fieldsSet;
exit when user_cur%notfound;
stock_code:=fieldsSet.stockcode;
stock_name:=fieldsSet.stockname;
stock_shortname:=fieldsSet.stockshortname;
stockRecord:=xmldom.createElement(document,'Stock');--Stock记录
tempelement:=xmldom.createElement(document,'StockCode');
textnode:=xmldom.makeNode(xmldom.createTextNode(document,fieldsSet.stockcode));
tempnode:=xmldom.appendChild(xmldom.makeNode(tempelement),textnode);
tempnode:=xmldom.appendChild(xmldom.makeNode(stockRecord),xmldom.makeNode(tempelement));
tempelement:=xmldom.createElement(document,'StockName');
textnode:=xmldom.makeNode(xmldom.createTextNode(document,fieldsSet.stockname));
tempnode:=xmldom.appendChild(xmldom.makeNode(tempelement),textnode);
tempnode:=xmldom.appendChild(xmldom.makeNode(stockRecord),xmldom.makeNode(tempelement));
tempelement:=xmldom.createElement(document,'StockShortName');
textnode:=xmldom.makeNode(xmldom.createTextNode(document,fieldsSet.stockshortname));
tempnode:=xmldom.appendChild(xmldom.makeNode(tempelement),textnode);
tempnode:=xmldom.appendChild(xmldom.makeNode(stockRecord),xmldom.makeNode(tempelement));
tempnode:=xmldom.appendChild(xmldom.makeNode(rootelement),xmldom.makeNode(stockRecord));
/**
textnode:=xmldom.makeNode(xmldom.createTextNode(document,fieldsSet.stockname));
xmldom.appendChild(tempelement,textnode);
textnode:=xmldom.makeNode(xmldom.createTextNode(document,fieldsSet.stockshortname));
xmldom.appendChild(tempelement,textnode);
xmldom.appendChild(stockRecord,tempelement);
xmldom.appendChild(rootelement,stockRecord);
*/
end loop;
--将根元素添加到Document对象
tempnode:=xmldom.appendChild(xmldom.makeNode(document),xmldom.makenode(rootelement));
xmldom.writeToFile(document,'c:/111.xml');
end;
分享到:
相关推荐
在Oracle数据库中,XML与SQL(Structured Query Language)结合,形成了SQL/XML API,使得XML数据可以被查询、更新和存储。Oracle提供了XMLType数据类型,专门用于存储XML文档。通过XMLType,XML文档可以像普通表...
1. DOM解析:DOM将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历和操作XML数据。这种方式适用于小到中型的XML文件,因为它一次性加载整个文件,内存消耗较大。 2. SAX解析:SAX是一种事件...
一个XML文档通常包括文档声明、元素、属性、注释、处理指令等部分。文档声明如`<?xml version="1.0" encoding="UTF-8"?>`用于指定XML版本和字符编码。根元素是文档的顶级元素,所有其他元素都嵌套在根元素内。 三、...
XML还支持命名空间(Namespaces),这使得在同一个文档中使用来自不同来源的元素和属性成为可能,避免了命名冲突。例如,`<html xmlns="http://www.w3.org/1999/xhtml">` 定义了一个名为“html”的命名空间。 此外...
此外,XML支持命名空间,这使得在同一个文档中使用来自不同来源的元素成为可能,避免了命名冲突。 XML文档的结构严谨,每个打开的元素必须有相应的关闭元素,如`<element>`和`</element>`,以保持文档的平衡。不过...
- **DOM解析**:将整个XML文档加载到内存中,形成一个节点树,便于遍历和操作。 - **SAX解析**:事件驱动的解析方式,逐个处理元素,不占用大量内存,适用于大文件。 - **PULL解析**:类似于SAX,但允许开发者按...
在Java中,DOM解析器会将整个XML文档加载到内存中,形成一棵树形结构,称为DOM树。你可以通过DOM接口访问和修改树中的任何节点。例如,可以使用`org.w3c.dom.Document`类来获取XML文档的根元素,然后遍历或修改子...
另一个是"xml与数据库转换",这可能是一个教程或者代码示例,用于说明如何在XML和传统数据库之间进行数据转换。 XML导入数据库的过程通常包括以下步骤: 1. **解析XML**:首先,我们需要解析XML文件,将其内容转化...
8. **DOM与SAX解析器**:DOM(文档对象模型)解析器将整个XML文档加载到内存中,形成一个树形结构,便于遍历和操作。SAX(简单API for XML)则是事件驱动的解析器,只按需处理文档部分,适合处理大型XML文件。 9. *...
- `jdom.jar`:JDOM是另一个Java XML处理库,专注于提供一个与DOM类似的API,但更适应Java语言。 - `log4j-1.2.8.jar`:这是Apache Log4j的日志框架,虽然不是直接处理XML,但在处理XML过程中记录日志非常有用。 - `...
数据库到XML文件的转换是一个常见的数据交换和存储过程,尤其在需要将结构化数据与不同系统集成时。XML(eXtensible Markup Language)是一种可扩展标记语言,它允许我们以自定义的方式描述数据,使其在不同的软件和...
1. DOM解析:将整个XML文档加载到内存中,构建一个节点树。开发者可以遍历整个树,查找、修改、删除节点。这种方式适合小规模文档,对内存消耗较大。 2. SAX解析:事件驱动型解析,逐行读取文档,遇到元素、属性等...
每份XML文档必须有一个根元素,所有的其他元素都包含在其中。元素标签是成对出现的,如`<element>`和`</element>`,且元素名称区分大小写。XML文档还要求有良好的结构,即所有打开的元素必须被正确地关闭。此外,XML...
在DOM解析中,该文件会被转化为一棵树,其中每个元素、属性和文本都是树中的一个节点。开发者可以通过API遍历这棵树来获取或修改数据。 **SAX解析**则是一种基于事件的、非内存映射的解析方式。与DOM不同,SAX并不...
DOM将整个XML文档加载到内存中,形成一个树形结构,方便进行查找和修改;而SAX则采用事件驱动的方式,逐行读取文档,节省内存,适用于大型文档。 此外,XSLT(Extensible Stylesheet Language Transformations)和...
DOM将整个XML文档加载到内存中,形成一个树形结构,方便遍历和修改;SAX是事件驱动的解析器,逐行读取XML,适用于大文件处理;而StAX则允许程序以流式的方式读写XML,既节省内存又可控制进度。 在这个图书馆系统中...
DOM将整个XML文档加载到内存中形成一个树形结构,方便访问任何部分;SAX是事件驱动的,逐行读取,适用于大文件;StAX则是流式解析,允许向前移动的迭代器,既节省内存又允许高效处理。 在提供的压缩包文件中,"XML....
1. DOM解析:DOM将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历、查找和修改XML内容。这种方式适用于小型XML文件,因为对大文件可能会消耗大量内存。 2. SAX解析:SAX是一种事件驱动的解析...
每个元素都有一个父元素,除了根元素,它没有父元素。元素可以有子元素,也可以有同级元素。这种层次结构使得数据的组织变得清晰。 XML解析: 解析XML文档有两种主要方式:DOM(Document Object Model)和SAX...
"整合"意味着这些技术被集成到一个项目中,形成一个完整的系统。开发者可能在Web服务器上配置了SSI支持,同时在后端设置了Ibatis与Oracle数据库的连接,前端使用JavaScript和AJAX来与后端进行交互,实现动态加载分页...