Oracle XML xpath获取循环中当前节点的值

时间:2015-03-03 10:59:52

标签: xml oracle xpath xmldom

这是我从我调用的URL

返回的XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<xml_calls>
    <calls ip="46.32.238.33">1038791</calls>
    <calls ip="212.44.61.2">3</calls>
    <calls ip="81.86.144.86">2</calls>
</xml_calls>

这是我调用解析XML的代码

declare
    doc     xmldom.DOMDocument;

    data_list   xmldom.DOMNodeList;
    data        xmldom.DOMNode;

    Line_node_list  xmldom.DOMNodeList;
    Line_node       xmldom.DOMNode;
begin

    doc := xml.parseURL('http:// .... url to my xml doc ....');

    data_list := xpath.selectNodes(doc, '//xml_calls');
    data := xmldom.item(data_list, 0); -- node list index is zero based

   -- open the line_no node
    Line_node_list := xpath.selectNodes(data, './calls');

    for i in 1 .. xmldom.getLength(Line_node_list) loop
        Line_node := xmldom.item(Line_node_list, i-1);  

        dbms_output.put_line(xpath.valueOf(Line_node, './calls'));
        dbms_output.put_line(xpath.valueOf(Line_node, './@ip'));

    end loop;
end;

如何获取循环中当前节点的值,即&#34;调用&#34;如在循环中xpath.valueOf(Line_node,&#39; ./ calls&#39;)返回null。在循环之外,它显然只返回第一个值1038791

我错过了什么吗?

由于

0 个答案:

没有答案