2011-09-27 68 views
2

我有這樣的xml;如何檢查XSLT中存在的值

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

而在XSL模板中,我有$ formErrors作爲變量,我想檢查一個值是否存在。如果有一個PHP的等價物,我想要一個in_array()函數。我怎樣才能在XSLT中做到這一點?

回答

2
<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> 
+0

我想檢查,如果說ADDRESS_1出現在$ formErrors。已更新 – Kevin

+0

。我希望它能起作用 – a1ex07

1

試試這個:

<?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!