在xml文档中,我们可以存储一些必要的数据,因为xml 具有简单易读,跨平台传输的特点,但有的时候好像也不是那么易读,比如你不进行任何的操作直接打开xml文档。

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

<class>
    <student>
        <name>张三</name>
        <age>18</age>
    </student>
    <student>
        <name>李四</name>
        <age>18</age>
    </student>
    <student>
        <name>王五</name>
        <age>18</age>
    </student>
    <student>
        <name>赵六</name>
        <age>18</age>
    </student>
    <student>
        <name>周七</name>
        <age>18</age>
    </student>
</class>

这是一份班级人员名单,这里为了测试也只有几个人,如果是一份真正的班级人员名单,大概人数也有4、50个吧,所以如果不进行任何操作看起来是相当费劲的,这里我们引入正题来讲解一下xsl。

xsl

xsl 中的s 其实就是指 stylesheet样式单,当然,xml自己也是可以引入css样式单的。这里我们主要说的是xsl,所以对css样式不再详细的讲解。

首先第一部我们当然就是创建一份xsl文件。这里我取名叫做 “student.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>
                <th>
                    <td>name</td>
                    <td>age</td>
                </th>
                <xsl:for-each select="class/student">
                <tr>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                </tr>
                </xsl:for-each>
            </table>
        </body>
    </html>
</xsl:template>
</xsl:stylesheet>

其中第一行是xml 文档的头声明,表明这是一份xml文档。
第二行则是声明这也是一个stylesheet的文件,同时我们给了版本号,和它的namespace。

template

template元素用来构建一个模板,其中的match属性的属性值是一个Xpath,这里我们用”/”表示根标签

for-each

相信学过js 或者 java的读者对这个应该非常的熟悉,就是一个循环,当然它的作用跟它的名字是一样的,我们可以遍历所有select 指定的xpath元素,然后将它放入输出流中。

value-of

这个元素是能够提取 select属性所指向的元素的值,然后把它放入输出流中。

代码中我指定了一个table来装载信息。但是这样还不够,因为我们还没跟源文件建立起联系。

打开源文件

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<class>
    <student>
        <name>张三</name>
        <age>18</age>
    </student>
    <student>
        <name>李四</name>
        <age>18</age>
    </student>
    <student>
        <name>王五</name>
        <age>18</age>
    </student>
    <student>
        <name>赵六</name>
        <age>18</age>
    </student>
    <student>
        <name>周七</name>
        <age>18</age>
    </student>
</class>

我在第二行加上了 : < ?xml-stylesheet type=”text/xsl” href=”student.xsl”?>

这是指定加载一个xsl文件,因为我源文件和xsl文件都在同一目录下所以就直接写上文件名了。

下面来看一下运行结果

原xml没有引用架构 xml引用xsl_文档

可能看起来还是不是那么好看(滑稽),但是你可以自己在table上加上一些css样式,让它变得好看起来。