XSLT文件中内嵌脚本

    技术2022-05-11  129

    最近开始学习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=0if x>=1 thenfor ii=1 to xacctemp=asc(mid(txt,ii,1))if (acctemp>255) or (0>acctemp) then '此处因为小于号要做特殊处理,故交换顺序后直接用大于号来得方便   y=y+2else   y=y+1end if  if y>=length then     txt=left(trim(txt),ii)    exit forend ifnext   cutstr=txtelse   cutstr=""end ifEnd 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()<=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文件略


    最新回复(0)