一般我们用XSL来转换XML时,使用如下代码
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="@url"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
但是一旦url中含有中文,由于有些服务器不支持中文URL,所以XML解析器就会把该中文转换成诸如:%E9%9F..形式的编码,但在点击链接会提示不能找到文件,即便是你改变文件编码也无济于事。
既然是这样,那么只好使用脚本来绕开解析器的转换了。这里我使用了JavaScript来实现中文URL的转换,部分代码如下:
<xsl:element name="a">
<xsl:attribute name="href">
#
</xsl:attribute>
<xsl:attribute name="OnClick">
javascript:window.open(‘<xsl:value-of select="@url"/>’, ”, ”);
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
或者
<xsl:element name="a">
<xsl:attribute name="href">
#
</xsl:attribute>
<xsl:attribute name="OnClick">
javascript:parent.location = ‘<xsl:value-of select="@url"/>’;return false
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>