小编quo*_*ame的帖子

PL/SQL:计算 xml 中的节点数

我正在与 Oracle 合作。

有没有办法使用 PL/SQL 计算 XML 文件中的节点(包括后代)的数量?

我希望能够将结果保存为变量以用作循环迭代器的上限。

我有以下xml,我想计算行节点内的节点数:

<row>
  <date name="date1" id="101"></date>
  <element1 name="ele1" id="111">
    <stuff></stuff>
    <stuff></stuff>
    <stuff></stuff>
  </element1>
  <element2 name="ele2" id="121"></element2>
  <element3 name="ele3" id="131></element15>
</row>
Run Code Online (Sandbox Code Playgroud)

结果应该是 7。

@johnbk 我正在与 Oracle 合作

这里的想法是,在获得节点数后,我可以将其用于:

nodeCount := 1;
    FOR i IN 1 .. numNodes
    LOOP
        xpath1 := '/row/*[' || nodeCount || ']/@name';
        SELECT EXTRACT(form_xml, xpath1) as other_name;
        nodeCount := nodeCount +1;
    END LOOP;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

xml plsql count nodes

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

count ×1

nodes ×1

plsql ×1

xml ×1