用于获取子元素计数的XPath表达式

时间:2016-12-02 22:35:03

标签: c# xml xpath

我有这样的XML

<Root>
   <Mgr name="X">
       <Emp name = "X1"/>
       <Emp name = "X2"/>
       <Emp name = "X3"/>
   </Mgr>
   <Mgr name="Y">
       <Emp name = "Y1"/>
       <Emp name = "Y2"/>
   </Mgr>
</Root>

我可以轻松地使用此count(/Root/Mgr/Emp)来获得全体员工,但我希望得到每个经理的计数。
像这样的东西 - &#39; 3,2&#39;。

1 个答案:

答案 0 :(得分:3)

XPath 1.0

此XPath 1.0表达式,

concat(count(/Root/Mgr[1]/Emp), ',', count(/Root/Mgr[2]/Emp))

将返回

3,2

,根据要求提供XML。

XPath 2.0

此XPath 2.0表达式,

string-join(/root/Mgr/count(Emp), ',')

将返回

3,2

根据要求提供XML(并且很好地概括了两个Mgr元素)。