XSLT比较两个元素

时间:2018-11-12 10:15:55

标签: html xml xslt

我有这个xml

<magazine>
  ...
  <startPage>14</startPage>
  <endPage>14</endPage>
  ...
</magazine>

<magazine>
  ...
  <startPage>27</startPage>
  <endPage>30</endPage>
  ...
</magazine>

我想比较startPageendPage的值,看看这两页是否相等

  

如果startPage = endPage->做某事;

     

如果不是->做其他事情

我应该如何在XSLT中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以在此处使用xsl:choose ...

<xsl:template match="magazine">
  <xsl:copy>
    <xsl:choose>
      <xsl:when test="startPage = endPage">
        <xsl:text>EQUAL</xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>NOT EQUAL</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:copy>
</xsl:template>

或者您可以将支票放在模板匹配项中,并为每个不同的逻辑使用单独的模板

<xsl:template match="magazine[startPage = endPage]">
  <xsl:copy>
    <xsl:text>EQUAL</xsl:text>
  </xsl:copy>
</xsl:template>

<xsl:template match="magazine">
  <xsl:copy>
    <xsl:text>NOT EQUAL</xsl:text>
  </xsl:copy>
</xsl:template>

http://xsltfiddle.liberty-development.net/gWmuiKj上查看后一个选项的作用