急!!oracle xml处理(节点获取,增加,删除)!感谢各位帮忙! oraclexml增加节点删除节点获取节点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在ORACLE中使用XMLDOM心得杂记(随时补充) 该处理 需要先解析 然后再插入,删除元素 目前能获取到tab下的节点元素 以及值信息 procedure p_getXml(sxml in clob) is --创建xml解析器实例xmlparser.Parser xmlPar xmlparser.Parser := xmlparser.newParser; --定义DOM文档 xDoc xmldom.DOMDocument; --定义inxml子节点数目变量 lenInxml integer; --定义节点列表,存放inxml节点们 itemNodes xmldom.DOMNodeList; --定义节点列表,存放inxml子节点们 childNodes xmldom.DOMNodeList; --定义节点,存放单个inxml节点 itemNode xmldom.DOMNode; sname varchar(100); svalue varchar(100); tmp number; begin --解析xmlStr中xml字符串,并存放到xmlPar中 xmlparser.parseClob(xmlPar, sxml); --将xmlPar中的数据转存到dom文档中 xDoc := xmlparser.getDocument(xmlPar); xmlparser.freeParser(xmlPar); --释放解析器实例 --获取所有sxml节点 itemNodes := xmldom.getElementsByTagName(xDoc, 'tab'); --获取sxml节点的个数 lenInxml := xmldom.getLength(itemNodes); --遍历所有的sxml节点 for i in 0 .. lenInxml - 1 loop begin --获取节点列表中的第i个sxml节点 itemNode := xmldom.item(itemNodes, i); --获取第i个inxml节点的所有子节点 childNodes := xmldom.getChildNodes(itemNode); tmp := xmldom.GETLENGTH(childNodes); for j in 0 .. tmp - 1 loop --获取所有子节点的值 sname := xmldom.getNodeName(xmldom.item(childNodes, j)); svalue := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(childNodes, j))); dbms_output.put_line(sname || '-'); dbms_output.put_line(svalue || '--'); end loop; end; end loop; --是否dom文档 xmldom.freeDocument(xDoc); --异常和错误处理 EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLERRM ); end;能否帮我补充完善下? 请问如何取得dbms_output.put_line的结果?举个存储过程的例子? 查询oracle所有用户的sql语句? ORA-03113:通信通道的文件结束 查询oracle9i数据库返回的结果集不能操作!!!!!!! 求一sql语句 Oracle为何采用表空间存储数据??? 怎样绕过sysdba密码? oracle9i安装问题? 小弟有难,大家帮忙!谢谢! ora-01031权限不足是怎么回事啊 java 程序连接不到Oracle数据库 vc++ oci连接oracle测试,OCIEnvInit相关函数无法解析
目前能获取到tab下的节点元素 以及值信息
procedure p_getXml(sxml in clob) is
--创建xml解析器实例xmlparser.Parser
xmlPar xmlparser.Parser := xmlparser.newParser;
--定义DOM文档
xDoc xmldom.DOMDocument;
--定义inxml子节点数目变量
lenInxml integer;
--定义节点列表,存放inxml节点们
itemNodes xmldom.DOMNodeList;
--定义节点列表,存放inxml子节点们
childNodes xmldom.DOMNodeList;
--定义节点,存放单个inxml节点
itemNode xmldom.DOMNode;
sname varchar(100);
svalue varchar(100);
tmp number;
begin
--解析xmlStr中xml字符串,并存放到xmlPar中
xmlparser.parseClob(xmlPar, sxml);
--将xmlPar中的数据转存到dom文档中
xDoc := xmlparser.getDocument(xmlPar);
xmlparser.freeParser(xmlPar); --释放解析器实例
--获取所有sxml节点
itemNodes := xmldom.getElementsByTagName(xDoc, 'tab');
--获取sxml节点的个数
lenInxml := xmldom.getLength(itemNodes);
--遍历所有的sxml节点
for i in 0 .. lenInxml - 1 loop
begin
--获取节点列表中的第i个sxml节点
itemNode := xmldom.item(itemNodes, i);
--获取第i个inxml节点的所有子节点
childNodes := xmldom.getChildNodes(itemNode);
tmp := xmldom.GETLENGTH(childNodes);
for j in 0 .. tmp - 1 loop
--获取所有子节点的值
sname := xmldom.getNodeName(xmldom.item(childNodes, j));
svalue := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item(childNodes,
j)));
dbms_output.put_line(sname || '-');
dbms_output.put_line(svalue || '--');
end loop;
end;
end loop;
--是否dom文档
xmldom.freeDocument(xDoc);
--异常和错误处理
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM );
end;能否帮我补充完善下?