XLST学习笔记

一、样式表声明及引用:

声明:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

引用:

在XML文件里面写出样式表的路径和文件名

<?xml-stylesheet type="text/xsl" href="fileName.xsl"?>

 

二、标签

1.<xsl:template math="/"></xsl:template>

元素定义了一个模板。而 math="/" 属性则把此模板与 XML 源文档的根相联系。

 

2.<xsl:value-of select="[XPath expression]" />

提取某个选定节点的值,并把值添加到转换的输出流中。[XPath expression]表示提取节点的XPath路径

 

3.<xsl:for-each select="[XPath expression]"></xsl:for-each>

用于选取指定的节点集中的每个 XML 元素

注:select可以使用设置过滤条件来进行查询:

  • &gt; 大于
  • &lt;  小于
  • =     等于
  • !=    不等于

例如:<xsl:for-each select="catalog/cd[Price &gt; 10]">...</xsl:for-each>

还可以使用XPath的模糊查询:

例如:

<xsl:for-each select="catalog/cd[contains(author='Bob.Dylan')]">...</xsl:for-each>

如果是属性内容,则用这样的表达式:

<xsl:for-each select="catalog/cd[contains(@author='Bob.Dylan')]">...</xsl:for-each>

  

3.1 <xsl:sort select="[XPath expression]" />

排序。对结果进行排序,只要简单地在 XSL 文件中的 <xsl:for-each> 元素内部添加一个 <xsl:sort> 元素就可以了。

 

3.2 <xsl:if test="expression"></xsl:if>

在<xsl:for-each>内部添加,实现判断功能,test为条件表达式:

<xsl:for-each select="catalog/cd">

  <xsl:if test="price &lt; 20">...</xsl:if>

</xsl:for-each>

 

3.3 <xsl:choose>

包含在foreach循环中,多重条件判断语句。

格式如下:

<xsl:for-each select="catalog/cd">

  <xsl:choose>

    <xsl:when test="expression1">

      .....

    </xsl:when>

    <xsl:when test="expression2">

      .....

    </xsl:when>

    <xsl:otherwise>

      .....

    </xsl:otherwise>

   </choose>

</xsl:for-each>

 

4.<xsl:apply-templates />

可把一个模板应用于当前的元素或者当前元素的子节点.

例如:

<html>

<body>

<h2>My Cd List</h2>

<xsl:apply-templates />

</body>

</html>

 

<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>

<xsl:template match="title">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>

<xsl:template match="artist">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/></span>
<br />
</xsl:template>

 

转载于:https://www.cnblogs.com/simonwy/archive/2009/12/28/1634231.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值