Xsl实践总结(一)

在一个大型的项目中往往用到好几种开发语言,例如C# Java  PHP 。。。
那么如何更好更方便的实现这几种语言之间的相互通讯和结合呢,我下面来介绍一种新的模式,当然已经有很多人用过,但我还是要罗嗦一下:
  通过XML进行交互,每种语言设计的对象类都可以转化为内存中的xml对象,然后每种语言都可以对xml对象进行操作与交互。

最近做了一个项目就是改造以前的程序提升性能,由于以前页面上的构造非常乱而且杂,有从Mysql数据库取数据的,也有从SqlServer数据库取数据的,而且数据库分布在多个服务器上,由于每个项目组之间的协调不够所以在读取数据上有读取重复数据的情况,大大浪费了资源。一个页面上访问数据库很多次,所以造成访问速度非常慢。我们现在设计了一个模式,就是一次性从数据库加载所有的数据然后转化为内存中的xml对象,然后用xsl对数据包装转化为一个带有样式的Html,所有的Js中变量都一次性打到页面上以便使用。

下面介绍几个使用xsl的方法:

 

XML文件


先附上xsl, 名字为BasicTemplate.xsl

XSL模板



1、在xsl中定义变量,用xpath取出数据,然后可以在用于显示的地方进行调用
<xsl:variable name="curUserID" select="Data/ME/BasicInfo/UserID"/>
<xsl:value-of select="$curUserID"/>
2、xsl也可以像导入控件一样来引入另一个xsl 
<xsl:include href="lovetype.xsl"/>
3、条件语句的使用
         <xsl:if test="$oppGender='true'">男</xsl:if>
         <xsl:if test="$oppGender='false'">女</xsl:if>
$oppGender代表一个变量,值为true or  false

这里的if语句没有else部分,要想使用else只能用when

语法如下:

 <xsl:choose>
            <xsl:when test="expression">
            ... some output ...
            </xsl:when>
            <xsl:otherwise>
            ... some output ....
            </xsl:otherwise>
            </xsl:choose>
 


4、for-each 循环语句

<xsl:template match="/"> 
     
<TABLE> 
          
<xsl:for-each select="//car"> 
               
<xsl:sort data-type="text" select="@id"/> 
               
<TR> 
                    
<TH> 
                         
<xsl:text>Car-</xsl:text> 
                         
<xsl:value-of select="@id"/> 
                    
</TH> 
               
</TR> 
          
</xsl:for-each> 
     
</TABLE> 
</xsl:template>
select 是选取的xml文件的符合条件的节点集合
 
某学校拟使用XML文件制定个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息:班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名、性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写的XML文件,编写其相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写的XML文件,编写合适的XSL文件,将学生基本信息打印成表格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值