如何在xpath中获取每个节点和if节点的值

时间:2014-08-01 10:34:44

标签: xml xslt xpath xslt-2.0

我是xpath的新手。我想在xslt中使用for-each和if条件提取Age的所有值大于24。

 <PriceBooking>
              <Guest>
              <GuestCount Age="24" Code="10" Quantity="1"/>
              <GuestCount Age="26" Code="10" Quantity="1"/>
              <GuestCount Age="3" Code="10" Quantity="1"/>
           </Guest>
    </PriceBooking>

到目前为止,我尝试了以下内容: -

    <xsl:for-each select="PriceBooking/Guest">
    <xsl:choose>

    <xsl:when test="PriceBooking/Guest/GuestCount/@Age &gt; '28'">

    <Age><xsl:value-of select="PriceBooking/Guest/GuestCount/@Age"/></Age>
    </xsl:when>
<xsl:otherwise>
<Sid>Failed to load</Sid>
</xsl:otherwise>
</xsl:choose>

它总是会另有条件..请帮我解决xpath

1 个答案:

答案 0 :(得分:0)

您需要了解for-each将上下文节点更改为Guest元素,并且内部需要相对路径,例如。

<xsl:when test="GuestCount/@Age > 28">...</xsl:when>

但您发布的样本的@Age值为24,26和3,因此条件永远不会为真。