让XSL转换的XML支持中文URL

  一般我们用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>

标签:
文章分类 FK Coding

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计