检查xml父节点中是不是存在两个xml节点
Posted
技术标签:
【中文标题】检查xml父节点中是不是存在两个xml节点【英文标题】:check if two xml nodes exists within an xml parent检查xml父节点中是否存在两个xml节点 【发布时间】:2015-05-18 09:24:23 【问题描述】:我正在尝试确定一个 xml 标记是否有两个特定的子标记。
XML Clob 的格式如下:
<ProductS>
<id>1</id>
<Discount></Discount>
<Promotion></Promotion>
</ProductS>
<ProductS>
<id>2</id>
<Discount></Discount>
</ProductS>
我希望我的 xmlquery 遍历这个 XML clob,并确定 ProductS 下是否有包含这两种折扣和促销类型的 xml 标记。
我的代码目前如下所示:
select existsNode(xmltype(rec1.xml), '/ProductS/Discount') into v_node_exists_discount from dual;
select existsNode(xmltype(rec1.xml), '/ProductS/Promotion') into v_node_exists_promotion from dual;
将上面的这两个语句与上述两个语句在这种情况下工作还是我需要做其他事情。
谢谢。
【问题讨论】:
【参考方案1】:我不熟悉 oracle,但您可以像这样使用单个 xpath 轻松查询 <ProductS>
具有 <Discount>
和 <Promotion>
:
/ProductS[Discount and Promotion]
oracle 查询可能如下所示:
select existsNode(xmltype(rec1.xml), '/ProductS[Discount and Promotion]')
into v_node_exists_discount_and_promotion
from dual;
【讨论】:
以上是关于检查xml父节点中是不是存在两个xml节点的主要内容,如果未能解决你的问题,请参考以下文章