让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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值