XPath函数position()< X

时间:2013-07-02 09:12:00

标签: xml xslt xpath

我有一个xml文档,如下所示

 <?xml version="1.0" encoding="utf-8"?>
<Results>
<InsertPtm>
<GdWfm022 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RowVersion>0</RowVersion>
  <ProjTeamNo>15</ProjTeamNo>
  <TeamMember>MFMAINT</TeamMember>
</GdWfm022>
<GdWfm022 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <RowVersion>0</RowVersion>
  <ProjTeamNo>15</ProjTeamNo>
  <TeamMember>RC</TeamMember>
</GdWfm022>

我想从GdWfm022节点集中选择两个Team成员元素,并为MFMAINT,RC

断言测试

这是我的XPath表达式

<context select="/TEST/INSERTPTM/GDWFM022 [position() &lt;= 2] ">
<assert test="TEAMMEMBER = 'MFMAINT' "/>
<assert test="TEAMMEMBER = 'RC' "/>

我希望两个测试都通过但是失败了,有人可以帮我解决这个问题。谢谢提前

1 个答案:

答案 0 :(得分:2)

您的选择表达式以/TEST开头,而您的示例XML以Results为根元素,而您的XPath全部为大写,而元素名称则使用大小写混合。我不知道你在谈论什么平台,但一般来说,XPath是区分大小写的。

这是怎么回事:

<context select="/Results/InsertPtm/GdWfm022[position() &lt;= 2] ">
<assert test="TeamMember = 'MFMAINT' "/>
<assert test="TeamMember = 'RC' "/>