XSLT сравнить два элемента - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть этот xml

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

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

Я хочу сравнить значения startPage и endPage, чтобы увидеть, равны ли эти две страницы

т.е.

если startPage = endPage -> сделать что-нибудь;

если нет -> сделать что-то еще

Как мне подойти к этому в XSLT?

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...