您好我有许多XML文件,其结构如下:
<mydoc>
<EC>
<spec>
<name>A para</name>
<para>A</para>
<val>40</val>
</spec>
<spec>
<name>Input Voltage</name>
<para>Vin</para>
<val>40</val>
</spec>
</EC>
</mydoc>
我只需要过滤那些规格为para = Vin且val> 30
的XML文件我的Xquery应该是什么样的?在DB2中我到目前为止有这个吗?
for $x in db2-fn:xmlcolumn('TABLE.XMLCOLUMN')/mydoc
所以这将迭代所有XML文件,我将在$ x中使用mydoc元素标签,但现在我如何实现多个条件并返回满足我条件的规范名称?
答案 0 :(得分:1)
有几种表达方式。 XPath谓词:
for $x in db2-fn:xmlcolumn('TABLE.XMLCOLUMN')/mydoc[EC/spec[para = 'Vin' and val > 40]]
或XQuery的where
子句。这也使用XPath谓词,我认为它更容易阅读:
for $x in db2-fn:xmlcolumn('TABLE.XMLCOLUMN')/mydoc
let $specs := $x/EC/spec
where ($spec[para = 'Vin' and val > 40])
两者都应该给你相同的结果。