通过检查XML子标记来计数

时间:2015-05-11 21:46:19

标签: mysql sql sql-server xml-parsing

我想根据if条件计算子元素。

 Declare @MainXml XML =
 '<root>
     <Data>
           <a>FAIL</a>
     </Data>
     <Data>
           <a>PASS</a>
     </Data>
     <Data>
           <a>PASS</a>
     </Data>
   <root>'

我想得到子元素“a”的值为“FAIL”的“数据”元素的数量。以上计数为1。

我将此计数存储在SQL列中。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我不知道是否有更直接的方法,但你肯定可以粉碎XML然后计算结果,就像这样(在SQL Server中)

Declare @MainXml XML =
'<root>
    <Data>
          <a>FAIL</a>
    </Data>
    <Data>
          <a>PASS</a>
    </Data>
    <Data>
          <a>PASS</a>
    </Data>
  </root>'

select count(1)
from @mainXML.nodes ('root/Data') t(c)
where t.c.value('a[1]', 'char(4)') = 'FAIL'
相关问题