Как проверить, что значение существует в XSLT - PullRequest
3 голосов
/ 27 сентября 2011

У меня есть несколько xml, как это;

<formErrors>
    <value>address_1</value>
    <value>address_2</value>
//.. etc

И в шаблоне XSL у меня есть переменная $ formErrors, и я хочу проверить, существует ли значение. Если бы был эквивалент PHP, я бы хотел функцию in_array (). Как я могу сделать это в XSLT?

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011
<xsl:if test="count(formErrors/value) > 1"> 
    Show Errors
</xsl:if>
<!-- Test if value exists -->
<xsl:if test="formErrors/value ='address_1'"> 
    Show Errors
</xsl:if>
1 голос
/ 27 сентября 2011

Попробуйте это:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/">
    <xsl:variable name="check">address_1</xsl:variable>
    <xsl:if test="count(/formErrors[value/text() = $check]) > 0">
      <xsl:message terminate="no">Value with text <xsl:value-of select="$check"/> : exists!</xsl:message>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

Выход:

[xslt] : Warning! Value with text address_1 : exists!
...