我有以下从 Web 服务中提取并存储在 PL/SQL 中的 XMLTYPE 变量中的 XML 结构:
<results>
<return>
<customerid>127</customerid>
<customername>Test1</customername>
</return>
<return>
<customerid>127</customerid>
<customername>Test1</customername></return>
<return>
<customerid>93</customerid>
<customername>Test2</customername>
</return>
<return>
<customerid>96</customerid>
<customername>Test3</customername>
</return>
</results>
由于我使用的 Web 服务的不灵活性,无法指定只有 1 次出现的 customerid 必须与其对应的值一起显示。考虑到这一点,我如何使用 PL/SQL 解析这个 XML 文档以仅检索每个客户 ID 的第一次出现?
例如,解析上述内容将返回:
127 Test1
93 Test2
96 Test3
我的想法是开始解析 XML 并针对空数组查询客户 ID 是否存在(已打印到屏幕上)。如果没有,则打印客户 ID 匹配的名称以筛选并将客户 ID 添加到数组中。这意味着下一次该 XML 标记将被跳过,它会移动到下一个标记,至少这是我在 PHP 中可以做的,但遗憾的是这一次我必须使用 PL/SQL。
关于在 PL/SQL 中执行此操作的最有效方法的任何想法?
干杯,
杰森
附加:如有必要,我可以更改 XML 文档的结构,因为我自己使用 PL/SQL 动态生成它。