XSLT文件中内嵌脚本

最近开始学习XML,对于XML的格式化用XSLT来实现还是不错的,这样在要展示的页面上只须加载XML和XSLT文件的关联即可,要修改样式也不用跑到展示页面了,直接在XSLT里修改即可。不过XSLT用起来不是太顺手,和一般的编程习惯有所不同,但实现却是简单的。以下是我在项目中做的一个XSLT模版,用做读取显示XML的标题链接,并用vbscript来截取指字长度的字符串(中文按2字数计,英文按1字数计。)

<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="test"
exclude-result-prefixes="msxsl user">

 <xsl:output method="html"/>
<msxsl:script language="VBscript" implements-prefix="user">
Function cutstr(txt,length)
txt=trim(txt)
x=len(txt)
y=0
if x>=1 then
for ii=1 to x
acctemp=asc(mid(txt,ii,1))
if (acctemp>255) or (0>acctemp) then '此处因为小于号要做特殊处理,故交换顺序后直接用大于号来得方便
   y=y+2
else
   y=y+1
end if
  if y>=length then
     txt=left(trim(txt),ii) 
  exit for
end if
next
   cutstr=txt
else
   cutstr=""
end if
End Function
  </msxsl:script>
 
 <xsl:template match="/">
  <xsl:apply-templates select="rss/channel/item[importance=1]"/>
 </xsl:template>
 <xsl:template match="rss/channel/item">
  <xsl:if test="position()&lt;=6">
   <li>
    <span class="middate">
    [<xsl:value-of select="concat(substring(pubDate,6,2),'/',substring(pubDate,9,2))"/>]
    </span>
    <a href="{link}" title="{title}" target="_blank">
<xsl:value-of select="user:cutstr(string(title),34)"  />
    </a>
   </li>
  </xsl:if>
 </xsl:template>
</xsl:stylesheet>

注:XML文件略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值