Xml 我对XSLT代码有问题

Xml 我对XSLT代码有问题,xml,xslt,Xml,Xslt,我在XSLT方面有一个小问题。我需要这样写: $city1 = substring-after($address, ',') $city2 = substring-before($city1, ' -') $city = $city2 or $city1 if $city2 empty 我已经有这个了 <xsl:variable name="city1" select = "substring-after($adress,',')" /> <xsl:variab

我在XSLT方面有一个小问题。我需要这样写:

$city1 = substring-after($address, ',')  
$city2 = substring-before($city1, ' -')  
$city = $city2 or $city1 if $city2 empty
我已经有这个了

<xsl:variable name="city1"   select = "substring-after($adress,',')" /> 
<xsl:variable name="city2"   select = "substring-before($city1,'-')" /> 
<xsl:variable name="city"   select = "normalize-space($city2 or $city1)" /> 

但最后一轮不起作用。。。我如何修复它?

试试这个

<xsl:variable name="city1" select = "normalize-space(substring-after($address,','))" /> 
<xsl:variable name="city2" select = "normalize-space(substring-before($city1,'-'))" /> 
<xsl:variable name="city">
  <xsl:choose>
    <xsl:when test="$city2 != ''">
       <xsl:value-of select="$city2"/>
    </xsl:when>
    <xsl:otherwise>
       <xsl:value-of select="$city1"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

请解释“不起作用”。实际结果是什么?预期结果是什么?另外,您能够使用XSLT2.0吗?因为这将使解决方案更简单。