`

1. XML与配对的XSL文件

阅读更多


a)        1.xml

<?xml version="1.0" encoding="utf-8"?>

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

<forum>

     <board id="1" name="Java Programming">

         <message id="1"/>

     </board>

     <board id="2" name="C++ Programming">

         <message id="2"/>

     </board>

     <board id="3" name="XML Programming">

         <message id="3"/>

     </board>

转自http://blog.csdn.net/nickcen/article/details/167171
</forum>



b)        1.xsl

<?xml version="1.0" encoding="utf-8"?>

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



     <xsl:output method="html"/>

     <xsl:template match="/">

         <html>

              <head>

                   <title>Discussion Forum</title>

              </head>

              <body>

                   <ul>

                       <xsl:apply-templates select="forum/board"/>

                   </ul>

              </body>

         </html>

     </xsl:template>

     <xsl:template match="board">

         <li>

              <xsl:value-of select="@name"/>

              <ul>

                   <xsl:apply-templates select="message"/>

              </ul>

         </li>

     </xsl:template>

     <xsl:template match="message">

         <li>

              Message <xsl:value-of select="@id"/>

         </li>

     </xsl:template>

</xsl:stylesheet>



2.   <xsl:apply-templates>,<xsl:template>,<xsl:call-template>

a)        <xsl:apply-templates>

                      i.              使用:

<xsl:apply-templates select="…" mode="…"/>

                   ii.              说明:<xsl:apply-templates>的作用就是从当前的路径开始,根据select的内容生成一个候选的节点列表,再对列表中的每一节点,根据mode属性的设定,查找某个匹配的<xsl:template>标记,并进行替换。



b)        <xsl:template>

                      i.              使用:

<xsl:template match="…" name="…" priority="…" mode="…">

</xsl:template>

                   ii.              说明:<xsl-template>包含name属性时,则该模板将只能被<xsl:call-template>标记调用,而不会与候选的节点列表进行匹配。当有多个<xsl:template>与指定的节点匹配成功时,则最后遇上(或处于文件中更后位置)的<xsl:template>将被使用。若使用priority属性,则可以改变这种缺省的顺序,priority的值越大,则该<xsl:template>标记更会被优先使用。Mode参数与<xsl:apply-templates>中的mode值对应。



c)        <xsl:call-template>

                      i.              使用:<xsl:call-template name="…"/>

                   ii.              说明:name属性与<xsl-template>中的name属性相对应,用于指明将调用哪个<xsl:template>



3.   流控制

a)        <xsl:if>

                      i.              使用:

<xsl:if test="…">

     …

</xsl:if>

                   ii.              说明:当test内的表达式为真时,则执行标记内的内容。在XSLT中只定义了<xsl:if>标记,而没有else和else if标记,因此,若需要表示多种选择时,可采用多个<xsl:if>标记,或使用<xsl:choose>标记。



b)        <xsl:choose>

                      i.              使用:

<xsl:choose>

     <xsl:when test="…">…</xsl:when>

     <xsl:when test="…">…</xsl:when>

     <xsl:otherwise>…</xsl:otherwise>

</xsl:choose>

                   ii.              说明:<xsl:choose>标记的作用类试于switch操作,但比switch具有更多的判断类型。





c)        <xsl:for-each>

                      i.              使用:

<xsl:for-each select="…">



</xsl:for-each>

                   ii.              说明:该标记的作用与for循环操作类试。也可以使用配对的<xsl:apply-templates>和<xsl:template>来等效替换该<xsl:for-each>操作。例以1.xml为例

1.        <xsl:apply-templates>和<xsl:template>

<xsl:apply-tmeplates select="message"/>

<xsl:template metch="message">

     Message <xsl:value-of select="@id"/>

</xsl:template>

2.        <xsl:for-each>

<xsl:for-each select="message">

     Message <xsl:value-of select="@id"/>

</xsl:for-each>



4.   参数和变量

a)        <xsl:variable>

                      i.              使用:

<xsl:variable name="var1">index.html</xsl:variable>

<xsl:variable name="var2" select="index.html"/>

                   ii.              说明:<xsl:variable>应该放于<xsl:template>内。若要调用该变量时,则有两种情况:若是在以xsl为前缀的标记内使用则使用“$变量名”的格式;而在其他情况则需要使用

“{$变量名}”的格式。



b)        <xsl:param>

                      i.              使用:

<xsl:param name="par1" select="…"/>

                   ii.              说明:在<xsl:template>中嵌入<xsl:param>标记可获取由<xsl:apply-templates>或<xsl:call-template>中传递过来的参数值,select属性用于为该参数提供一个缺省值。



c)        <xsl:with-param>

                      i.              使用:

<xsl:with-param name="par1" select="…"/>

                   ii.              说明:在<xsl:apply-templates>和<xsl:call-template>可嵌入<xsl:with-param>标记向目标的<xsl:template>传入一个参数。该参数值由select属性指定。









5.   输出

a)        <xsl:output>

                      i.              使用:

<xsl:output method="…" indent="…"/>

                   ii.              说明:该标记一般位于文档的开头部分用于指明目标文档的属性。method的值一般为“html”,“xml”或“text”。其他的属性定义可参考《Java & XSLT》和XSLT的规范。



b)        <xsl:value-of>

                      i.              使用:

<xsl:value-of select="…" disalbe-output-esacping="…"/>

                   ii.              说明:用于输出select所指定的值。disable-output-escaping用于指定某些符号是否可以不用转换,例如当<xsl:value-of>的输出值中包含“>”,则当该符号输出时将被转换为“&gt;”,而若disable-output-escaping被指为true的话,则“>”将输出为“>”。特别的,当<xsl:output>的method属性指定为text时,该属性值将被忽略,“>”符号将输出为“>”。



c)        <xsl:text>

                      i.              使用:

<xsl:text disable-output-escaping="…">…<xsl:text>

                   ii.              说明:输出标记之间的内容,disable-output-escaping属性的含义与<xsl:value-of>同。



d)        <xsl:strip-space>和<xsl:preserve-space>

                      i.              使用:

<xsl:strip-space elements="…"/>

<xsl:preserve-space element="…"/>

                   ii.              说明:该两个标记都是<xsl:stylesheet>的直接子标记,用于指明是否保留elements属性指定的元素中的空格。



e)        <xsl:processing-instruction>

                      i.              使用:

<xsl:processing-instruction name="…">…<xsl:processing-instruction>

                   ii.              说明:用于在目标文档中生成一个由name属性指定的processing-instruction。



f)        <xsl:message>

                      i.              使用:

<xsl:message terminate="…">…<xsl:message>

                   ii.              说明:向目标文档输出标记间的内容,terminate属性用于指明XSLT处理器在输出该内容后,是否需要中止,缺省的属性值为“no”。













g)        <xsl:copy>和<xsl:copy-of>

                      i.              使用:

<xsl:copy />

<xsl:copy-of select="…"/>

                   ii.              说明:<xsl:copy>用于复制当前节点到目标文件,但不包括当前节点的属性和子节点。<xsl:copy-of>用于递归的复制由select属性所指定的节点,包括属性,子节点等。



6.   节点生成

a)        <xsl:attribute>

                      i.              使用:

<xsl:attribute name="…" namespace="…">…<xsl:attribute>

                   ii.              说明:定义一个由name指定的属性值。



b)        <xsl:attribute-set>

                      i.              使用:

<xsl:attribute-set name="…" use-attribute-set="…">

     <xsl:attribute name="…">…<xsl:attribute>

     …

</xsl:attribute-set>

                   ii.              说明:定义一个由name命名的属性集合。通过use-attribute-set可以引入另一个属性集。



c)        <xsl:element>

                      i.              使用:

<xsl:element name="…" namespace="…" use-attribute-set="…">…<xsl:element>

                   ii.              说明:产生一个由name指定的元素,通过use-attribute-set可以指定一个属性集。



7.   文档导入

a)        <xsl:include>

                      i.              使用:<xsl:include href="…"/>

                   ii.              说明:导入由href指定的外来xsl文件,被导入文档中的template的优先级与当前文档一致,且<xsl:include>标记能出现于当前文档中的任何位置。



b)        <xsl:import>

                      i.              使用:<xsl:import href="…"/>

                   ii.              说明:导入由href指定的外来xsl文件,被导入文档中的template的优先级低于当前文档中的同名template,另<xsl:import>标记应置于文档开始部分。



8.   其他

a)        <xsl:sort>

                      i.              使用:

<xsl:sort select="…" order="…" case-order="…" data-type="…"/>

                   ii.              说明:对select属性指定的节点列表进行排列。order的候选值为“ascending”和“descending”。case-order的候选值为“uppper-first”和“lower-first”。data-type的候选值为“text”和“number”。text表明按字符顺序排列,number表明按数值大小进行排列。<xsl:sort>标记一般处于<xsl:apply-templates>或<xsl:for-each>中。



9.   XSLT的缺省规则

a)        递归处理各个节点

<xsl:template match="*|/">

<xsl:apply-templates />

         </xsl:template>



b)        递归输出所有文本内容和属性值

<xsl:template match="text()|@*">

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

</xsl:template>



c)        忽略所有processing-instruction和comment

<xsl:template match="processing-instruction()|comment()"/>
分享到:
评论

相关推荐

    Jmeter+ant实现测试报告build.xml和报告模板jmeter-results-newreport.xsl

    `jmeter-results-newreport.xsl`是一个XSLT(Extensible Stylesheet Language Transformations)文件,它用于转换JMeter的CSV或XML结果文件为HTML格式的报告。通过调整这个模板,你可以定制报告的布局、颜色、图表...

    Jmeter报告模板文件-jmeter.results.zyanycall.me.xsl

    原版的模板文件有免费资源我知道,但这个是我再次加工升级的文件,来自jmeter.results.shanhe.me.xsl。为了便于区分,我将名字做了修改。 我之前上传的jmeter.results.shanhe.me.xsl没有这个功能强大和实用。 功能...

    jmeter.results.shanhe.me.xsl下载

    Ant+Jmeter集成,生成的测试报告的优化,扩展测试报告的内容。jmeter.results.shanhe.me.xsl,这边提供下载。 (忘记我是在哪下载的了,或许是博主,或许是在github上下载的,如果侵权了请联系我删除)

    System.XML.dll System.XML.DLL

    1. 读取XML:使用`XmlDocument`的`Load`方法可以从文件或流中加载XML文档,然后通过`GetElementsByTagName`、`SelectNodes`等方法获取指定标签的元素。 2. 写入XML:`XmlTextWriter`类可以用来创建和写入XML文档,...

    xml根据xsl转换

    在本案例中,提供的"**xsl2xml.java**"文件可能是一个Java程序,它实现了将XML文件根据XSL样式表转换的功能。Java中处理XML和XSLT转换通常会用到如`javax.xml.transform`这样的API,其中`TransformerFactory`用于...

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合,在jmeter.results.shanhe.me.xsl的基础上增加summary,解决换行问题

    javaxml,xsl,html文件转换[定义].pdf

    String xslFile = "src/com/test/xsl.xsl"; String htmlFileName = "d:/html.html"; //测试把 xml 文件转换为html 文件 xmlVSxslTest.Transform(xmlFile, xslFile, htmlFileName); } public static void ...

    jmeter.results.shanhe.me.xsl

    jmeter报告模板,与ant配合使用,可生成比较好看的报告模板,推荐使用,将此模块放入jmeter的extras文件夹下面,ant执行命令时会自动调用此模板

    网页XSL基础教程,支持XML和XSL

    #### 一、XSL与XML的关系 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于控制XML文档显示的标记语言。它主要用于将XML文档转换为其他格式,例如HTML或PDF。XSL允许开发者自定义XML文档的展示...

    jmeter.results.shanhe.me.xsl文件

    JMeter测试结果默认以XML格式存储,例如"jmeter.results.shanhe.me.xsl"文件,这是一个包含了所有测试数据的详细记录。为了将这些数据转化为易于理解的报告,我们需要使用XSL(eXtensible Stylesheet Language)转换...

    javaxml,xsl,html文件转换.pdf

    Java XML、XSL 和 HTML 文件转换技术详解 本文档主要讲解了 Java 中的 XML、XSL 和 HTML 文件转换技术。通过对 Java 代码的分析,我们可以了解到如何将 XML 文件转换为 HTML 文件,并了解到 XSL 模板的应用。 首先...

    纯html标签静态调用xml文件及xsl对xml文件的的显示修饰

    为了将XML与XSL结合,我们需要在HTML中引用XSL文件,通常是通过`&lt;xsl:transform&gt;`标签,但考虑到题目要求不使用JavaScript,我们可以使用以下HTML5的`&lt;link&gt;`标签: ```html &lt;link rel="stylesheet" type="text/xsl...

    c# System.Xml源代码

    1. **XmlReader与XmlWriter** - **XmlReader** 是一个只读、向前只进的XML解析器,它以流式方式处理XML数据,不占用大量内存,适用于处理大文件。 - **XmlWriter** 则用于创建XML文档,提供了一种向XML文档写入...

    《ASP与XML高级编程》源码

    《ASP与XML高级编程》源码 wrox出版社出版, 文件列表 Chapter 03 ..........\contacts.xml ..........\invalid_contacts.xml ..........\update_booklist.xml ..........\Verifire.asp Chapter 05 ............

    XSL.rar_ XML-JSP_.CHM_XML chm_xml xsl_xsl

    《XSL语法详解——XML与JSP的交互实践》 XSL(Extensible Stylesheet Language)是一种用于转换XML文档的样式表语言,它为XML数据提供了强大的格式化和转换能力。XSL的主要任务是将XML数据转换成其他形式,如HTML、...

    xml与xsl的小实例

    在这个“xml与xsl的小实例”中,我们将探讨这两种语言的基础知识以及它们如何协同工作。 XML是一种标记语言,它的主要目标是存储和传输结构化数据。XML文档由一系列元素组成,每个元素都有开始标签和结束标签,例如...

    Android-Android国际化文档整理xml和excel互转

    二、XML与Excel的转换 1. XML到Excel:Android的`strings.xml`文件是以XML格式存储的,便于程序解析。但对开发者或翻译人员来说,Excel表格可能更直观。这个项目提供了一个工具,可以将`strings.xml`文件中的所有...

    study_XML.rar_xml_xml xsl_xsl_xslt

    XML(eXtensible Markup Language)是一种标记语言,它的设计目标是传输和存储数据,而不是显示数据。XML的出现是为了弥补HTML在结构化数据...记得理论与实践相结合,多编写XML文档和XSLT转换,以加深理解和提高技能。

    XML与CSS、XML与XSL及在页面中直接调用XML的数据

    3. **XML与XSL(可扩展样式表语言)** XSL是一种更强大的工具,不仅处理样式,还能转换XML数据。XSLT(XSL转换)允许我们定义一套规则,将XML数据转换成其他格式,如HTML、PDF或新的XML文档。以下是一个简单的XSL...

Global site tag (gtag.js) - Google Analytics