好吧,這一個已經把我拉上了牆...XSLT:正則表達式函數不起作用?
我有一個xslt函數應該根據國家來分割Zip +城市字符串中的Zip代碼部分。我無法讓它工作!這是我走到這一步:
- zipandcity:「DK-2640哥本哈根SV」
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/functions" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:function name="exslt:GetZip" as="xs:string">
<xsl:param name="zipandcity" as="xs:string"/>
<xsl:param name="countrycode" as="xs:string"/>
<xsl:choose>
<xsl:when test="$countrycode='DK'">
<xsl:analyze-string select="$zipandcity" regex="(\d{4}) ([A-Za-zÆØÅæøå]{3,24})">
<xsl:matching-substring>
<xsl:value-of select="regex-group(1)"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:text>fail</xsl:text>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:when>
<xsl:otherwise>
<xsl:text>error</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:function>
我上的源XML在下面的值傳遞給函數運行它
...將輸出'失敗'!
我覺得有什麼東西我誤解這裏...
非常棒!至少丹麥郵政編碼確實是這樣做的。現在我將嘗試將您的建議用於其他國家。謝謝! – 2010-06-09 05:45:49
感謝您的提示,爲瑞典和荷蘭等國家的郵政編碼找到了一些良好的工作正則表達式。再次感謝! – 2010-06-10 11:51:28