如何使用XSLT从XML中选择属性?

时间:2013-08-21 07:25:48

标签: xml xslt

    <students>
    <student student-name="Leo">
    <program> BIT </program> 
    <study-model> on-campus </study-model>
    </student>
    <student student-name="Dan">
    <program> MIT </program> 
    <study-model> off-campus </study-model>
    </student>
    </students>
谁能帮助我吗?我仍然是XML的新手 - XSLT .. 我正在尝试为上面的XML数据开发XSTL

像我只想选择学生名Dan,包括他的程序和学习模型的XML输出..

我应该用什么代码从XML中选择属性?

输出的例子如下:

与数据略有不同(使用学生姓名而不是学生编号等)

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="utf-8" indent="yes" />

    <xsl:template match="students">
        <table>
        <xsl:apply-templates select="student" />
        </table>
    </xsl:template>

    <xsl:template match="student">
        <tr>
                    <td>
                Student Name: <xsl:value-of select="@student-name" />
            </td>

            <xsl:apply-templates />
        </tr>
    </xsl:template>

    <xsl:template match="*">
        <td>
            <xsl:value-of select="name(.)" />: <xsl:value-of select="." />
        </td>
    </xsl:template>

</xsl:stylesheet>

这将输出:

<table>
<tr>
<td>
                Student Name: Leo</td>
    <td>program:  BIT </td> 
    <td>study-model:  on-campus </td>

</tr>
<tr>
<td>
                Student Name: Dan</td>
    <td>program:  MIT </td> 
    <td>study-model:  off-campus </td>

</tr>
</table>

您可以通过在xsl中向td添加类,然后添加css。

来设置此表的样式