日期:2014-05-16  浏览次数:20944 次

oracle如何按指定节点名称解析xml,(高分求解,在线等候)
目前找的oracle解析xml的资料都是类似这样的:

定义省略.......
.
.
.
.

--遍历所有unit元素

   FOR i in 0..lenUnit-1

   LOOP

--获取第i个unit

     tempNode_unit := xmldom.item( unitNodes, i );     

     itemNodes:=xmldom.getChildNodes(tempNode_unit); 

     lenItem := xmldom.getLength( itemNodes );

     FOR j in 0..lenItem-1

     LOOP

         tempNode := xmldom.item( itemNodes, j );         

     --获取子元素的值

         chilNodes := xmldom.getChildNodes(tempNode);

         tmp := xmldom.GETLENGTH( chilNodes );

         l_name := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 0 )));

         l_value := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 1 )));
 

         DBMS_output.PUT_LINE(i||j,name,value);

       end loop;

   END LOOP;

标红的两句就是最终解析出来的节点值,但是这是按照几点的位置来解析的,取子节点的第几个,第几个,假设子节点的个数不确定,各个值的位置不确定,这样按位置解析出来的值就不明确到底哪个是哪个了,我想要按照节点名称来解析,不知道能如何实现?假设我有一个节点名称叫 'Stand',有没有类似这样的方法:

l_name := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 'Stand' )));



小弟这里拜谢了!!!!
我的qq:527276920
Oracle XML

------解决方案--------------------
百度

http://www.cnblogs.com/Liunsh/archive/2012/02/24/ORACLE_XML_.html
------解决方案--------------------
CSDN 没人气,,可以去ITPUB