XSL学习笔记3 XSLT的模板规则<xsl:value-of>和<xsl:for-each>
1、<xsl:value-of>元素
<xsl:value-of>元素是选择当前节点的值,用于在结果树中创建一个文本节点。例如<xsl:value-of select="Name" />就是选择Name节点的值。
select属性是必须的,用于指定要计算的表达式,表达式计算的结果将被转换为一个字符串值。如果字符串为空,那么文本节点将不会被创建。
2、<xsl:for-each>元素
<xsl:for-each>元素逐个(select)选择某条件,应用条件。select属性是必须的,用于指定一个表达式,该表达式计算结果必须是一个节点集。<xsl:for-each>元素的内容是一个模板,对于每一个被选择的节点,实例化该模板。
for-each还支持排序,order-by语句,它的语法是以分号(;)分隔、作为排序标准的列表。在列表元素前添加加号(+)表示按此标记的内容以升序排序,添加减号(-)表示逆序排序。作为一种简化的表示就是,排序标准列表就是由select规定的标记的子标记的序列,每个标记之间以(;)分隔。
employee.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="src/employees44.xsl"?>
<employees>
<employee sn="E-200402100001">
<name>zhangsan</name>
<age>25</age>
<monthly_pay mode="cash">
1200.00
</monthly_pay>
</employee>
<employee sn="E-200402100006">
<name>lisi</name>
<age>28</age>
<monthly_pay mode="cash">
1600.00
</monthly_pay>
</employee>
<employee sn="E-200503220001">
<name>wangwu</name>
<age>30</age>
<monthly_pay mode="credit_card">
3500.00
</monthly_pay>
</employee>
</employees>
employee.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head></head>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="employees">
<body>
<table border="1">
<xsl:for-each select="employee">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="age"/></td>
<td><xsl:value-of select="monthly_pay"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</xsl:template>
</xsl:stylesheet>
通过xslt处理器转换为html结果为:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table border="1">
<tr>
<td>zhangsan</td>
<td>25</td>
<td>1200.00</td>
</tr>
<tr>
<td>lisi</td>
<td>28</td>
<td>1600.00</td>
</tr>
<tr>
<td>wangwu</td>
<td>30</td>
<td>3500.00</td>
</tr>
</table>
</body>
</html>
分享到:
相关推荐
这里的 `<xsl:for-each>` 选取了所有 `会员` 节点,并对每个节点执行一次模板中的代码。 #### 七、XPath 表达式 XPath 是一种用于在 XML 文档中进行导航的语言,它可以非常灵活地选择 XML 文档中的节点。例如,在...
XSLT还包含了更多其他元素和功能,例如 `<xsl:decimal-format>`、`<xsl:element>`、`<xsl:key>` 等等。每个元素都有其独特的用途,了解它们可以帮助开发人员更高效地进行XML数据的转换和处理。接下来将继续介绍更多...
5. `<xsl:for-each>` 元素:这个元素用于遍历一个节点集,并对每个节点应用嵌套的模板。它使用`select`属性来指定要遍历的节点集。 ```xml <xsl:for-each select="Expression"> <!-- 对每个节点应用模板 --> </...
在这个文件中,我们将编写XSLT指令,比如`<xsl:template>`定义模板,`<xsl:for-each>`遍历元素,以及`<xsl:value-of>`选取元素的值。例如,如果“原料库.XML”中的数据组织为`<material><name>原料A</name><origin>...
<xsl:output name="xml" method="xml" indent="yes"/> <xsl:output name="html" method="html" indent="yes" omit-xml- declaration="yes"/> <xsl:output name="xhtml" method="xhtml" indent="yes" omit-xml-...
以上介绍的 `<xsl:apply-imports>` 和 `<xsl:apply-templates>` 是 XSLT 中非常核心的部分,前者主要用于处理外部导入的样式表中的模板规则,而后者则是在当前样式表内部处理节点集的选择与模板的应用。正确理解这两...
<p>Author: <xsl:value-of select="author"/></p> </xsl:template> ``` 6. **`<xsl:choose>` 元素** - **定义与用法**:用于基于条件来选择不同的分支执行。这是实现条件逻辑的关键元素。 - **语法**:`<xsl:...
这意味着当遇到`<xsl:apply-imports>`时,XSLT处理器会查找并应用任何通过`<xsl:import>`指令引入的模板。 - 这个元素常用于继承机制,使得子样式表能够继承父样式表的功能,同时还能覆盖或扩展父样式表的行为。 - ...
XSLT提供了丰富的功能,包括条件判断(`<xsl:if>`)、循环(`<xsl:for-each>`)、模板匹配(`<xsl:template>`)以及函数调用等,使得XML数据可以根据需要被灵活地呈现和转换。 在实际应用中,XSLT通常与XML解析器...
<xsl:value-of select="$ToString"/> <!-- 递归调用自身处理剩余部分 --> <xsl:call-template name="StringReplace"> <xsl:with-param name="SrcString" select="substring-after($SrcString, $FromString)"/> ...
<xsl:value-of select="number('100')"/> <!-- 输出:100 --> <xsl:value-of select="number('-3.14')"/> <!-- 输出:-3.14 --> ``` 2. `fn:abs(num)`:返回数值的绝对值。 示例: ```xml <xsl:value-of ...
`<xsl:apply-templates>` 是XSLT中最常用和最核心的元素之一,它负责应用匹配选择的模板。此元素允许你指定一组模板应该应用于哪些节点,从而控制XSLT转换的流程。 **语法:** ```xml <xsl:apply-templates select=...
在循环体内,我们使用`<xsl:value-of>`选择器来获取并输出`book`元素的属性(如`@id`)和子元素(如`title`和`author`)的值。 运行这个XSLT转换后,我们将得到如下输出: ``` 1 - Book1 by Author1 2 - Book2 by ...
`<xsl:apply-imports>`元素在XSLT中被用来执行由`<xsl:import>`语句导入的样式表中的模板。当XSLT处理器遇到`<xsl:apply-imports>`元素时,它将查找是否有任何适用的模板来自已导入的样式表,并执行它们。这在需要...
`<xsl:key>`定义索引,`<xsl:template match=pattern name=qname priority=number mode=tokens>`定义模板匹配规则,`<xsl:choose>`, `<xsl:when>` 和 `<xsl:otherwise>` 用于条件判断,而`<xsl:for-each>`则用于循环...
2. XSLT的流程控制包括`<xsl:if>`进行条件判断,`<xsl:for-each>`进行循环,以及`<xsl:choose>`, `<xsl:when>`, `<xsl:otherwise>`进行多分支选择。例如: ```xml <xsl:for-each select="cd"> <xsl:if test="price ...
此外,XSL还提供了更高级的功能,如条件语句(`<xsl:if>`)、循环(`<xsl:for-each>`)、模板调用(`<xsl:call-template>`)以及变量和函数,可以实现复杂的转换逻辑。通过熟练掌握XML和XSL,开发者能够创建出结构...
`<xsl:value-of>`标签用于提取并显示XML中相应元素的值,如ID、姓名、照片链接(假设照片以URL形式存储)和提示文字。 如果压缩包中还包括一个XML文件,如"students.xml",它可能包含以下结构: ```xml <students>...