XSLT

0.简单实例

1.节点选择

2.<xsl:value-of  select="">

3.<xsl:for-each select="">

4.<xsl:sort select="">

5.<xsl:if test="">

6.<xsl:choose >

7.补充

简单实例:

文件名:xx.xml

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="xx.xsl"?>
<welcome>
	<mytitle>my title</mytitle>
	<content>my content</content>
	
</welcome>

文件名xx.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
	<html>
		<xsl:apply-templates/>
	</html>
</xsl:template>
<xsl:template match="welcome" >
<head><title>
<xsl:value-of select="mytitle"/>
</title></head>
<body>
<xsl:value-of select="content"/>
</body>
</xsl:template>
</xsl:stylesheet>


模板(template)由两部分组成:匹配模式(match pattern)和执行。
匹配模式定义XML源文档中哪一个节点将被模板处理,执行则定义输出的是什么格式。

两部分对应的语法为xsl:template和xsl:apply-templates。

1.节点选择

<xsl:apply-templates/>元素表示匹配根节点(这里的 根节点是welcome)

<xsl:apply-templates select="mytitle"/> 如果改成这个,那么表示根元素下只匹配mytitle节点

2.<xsl:value-of select=""> 提取某节点的值

<xsl:value-of select="mytitle"> 表示为 节点mytitle的值

3.<xsl:for-each select="">

没有使用的情况:


simpleInstance.xml

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="simpleInstance.xsl" ?>
<students>
	<student>
		<name>IMA</name>
		<sex>male</sex>
		<age>10</age>
	</student>

	<student>
		<name>IMB</name>
		<sex>female</sex>
		<age>13</age>
	</student>

	<student>
		<name>IMC</name>
		<sex>female</sex>
		<age>22</age>
	</student>

	<student>
		<name>IMD</name>
		<sex>male</sex>
		<age>15</age>
	</student>
</students>


simpleInstance.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
	<head><title>simple instance</title></head>
	<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="students">
<body>
	<table border="1" width="80%" align="center" >
		<th>name</th>
                <th>sex</th>
                <th>age</th>	
	<xsl:apply-templates/>
	</table>
</body>
</xsl:template>
<xsl:template match="student">
		<tr>
			<td><xsl:value-of  select="name"/></td>
			<td><xsl:value-of  select="sex"/></td>
			<td><xsl:value-of  select="age"/></td>

		</tr>
		

</xsl:template>
</xsl:stylesheet>

使用for-each的情况:


foreach.xml:

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="foreach.xsl" ?>
<students>
	<student>
		<name>IMA</name>
		<sex>male</sex>
		<age>10</age>
	</student>

	<student>
		<name>IMB</name>
		<sex>female</sex>
		<age>13</age>
	</student>

	<student>
		<name>IMC</name>
		<sex>female</sex>
		<age>22</age>
	</student>

	<student>
		<name>IMD</name>
		<sex>male</sex>
		<age>15</age>
	</student>
</students>



foreach.xsl:

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>

<table border="1"  width="80%"   align="center">
<tr>
<th>name</th>
<th>sex</th>
<th>age</th>
</tr>
<xsl:for-each select="students/student">
<tr>
<td><xsl:value-of select="name" /></td>
<td><xsl:value-of select="sex" /></td>
<td><xsl:value-of select="age" /></td>
</tr>
</xsl:for-each>

</table>


</body>
</html>
</xsl:template>
</xsl:stylesheet>


4.xsl:sort 的使用


<xsl:for-each select="students/student">

<xsl:sort select="age">



5.<xsl:if test="">的使用(记得</xsl:if>)


<xsl:for-each select="students/student">
<xsl:if test="age > 20">
<tr>
<td><xsl:value-of select="name" /></td>
<td><xsl:value-of select="sex" /></td>
<td><xsl:value-of select="age" /></td>
</tr>
</xsl:if>
</xsl:for-each>


6.<xsl:choose>

<xsl:when > 

<xsl:otherwise>

<xsl:for-each select="students/student">
<xsl:sort select="age" />
<xsl:choose>
<xsl:when test="age > 20">
<tr >
<td bgcolor="#1230ff"><xsl:value-of select="name" /></td>
<td><xsl:value-of select="sex" /></td>
<td><xsl:value-of select="age" /></td>
</tr>
</xsl:when>
<xsl:when test="age < 13">
<tr >
<td bgcolor="#2340ff"><xsl:value-of select="name" /></td>
<td><xsl:value-of select="sex" /></td>
<td><xsl:value-of select="age" /></td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr >
<td bgcolor="#ff0000"><xsl:value-of select="name" /></td>
<td><xsl:value-of select="sex" /></td>
<td><xsl:value-of select="age" /></td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>


7.补充

xsl:stylesheet                                         样式表声明
xsl:template 定义模板,相当于函数
xsl:template match=“”
相当于函数调用,去匹配引号中指定的节点
xsl:apply-templates 应用模板
xsl:apple-templates select=“” 应用模板于指定节点
xsl:for-each select=“”
循环遍历所指的节点
xsl:value-of select=“” 取值语句,取出所指定的值



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值