目前找的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:527276920OracleXML
.
.
.
.--遍历所有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:527276920OracleXML
2楼的兄弟,你给的这种方法这好使我说的按照位子也就是index来解析节点值的,我现在要求按照节点名字来解析节点值的方法,感谢关注!!!