lexy

支持开源,尊重他人的劳动!

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  17 随笔 :: 0 文章 :: 9 评论 :: 0 Trackbacks
XSLT初学最简单例子

最近了解了下XSLT,写了个简单的例子,很简单,不过对从来没接触过XSL的新手来说,足够了。

一共三个文件:xsl,xml,html,放在同一目录下就可以了。
用浏览器打开xml文件和html文件,效果是一样的。(IE 6.0+)

------------------ test.xsl -----------------------

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">

<html>

<head>

<title>First XSLT example</title>

</head>

<body>

<table border="1" width="300" align="center">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <xsl:for-each select="test/people">    
        <xsl:sort select="id"/>
            <xsl:if test="age!=0">
                <xsl:choose >
                    <xsl:when test="age>20">
                        <tr>
                            <td><xsl:value-of select="id"/></td>
                            <td><xsl:value-of select="name"/></td>
                            <td><xsl:value-of select="age"/></td>
                        </tr>
                    </xsl:when>
    
                    <xsl:otherwise>
                        <tr bgcolor="red">
                            <td><xsl:value-of select="id"/></td>
                            <td><xsl:value-of select="name"/></td>
                            <td><xsl:value-of select="age"/></td>
                        </tr>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:if>    
    </xsl:for-each>
</table>

<br/>

<table border="3" width="300" align="center">
    <xsl:apply-templates/>
</table>

</body>

</html>

</xsl:template>


<xsl:template match="people">
        <tr align="center">
            <td style="color:green">
                <xsl:apply-templates select="id"/>
            </td>
            <td style="color:violet">
                <xsl:apply-templates select="name"/>
            </td>
            <td style="color:blue">
                <xsl:apply-templates select="age"/>
            </td>
        </tr>
</xsl:template>

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

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

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

</xsl:stylesheet>


---------------------- test.xml -----------------------------------

<?xml version="1.0" encoding="iso-8859-1"?>

<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<test>
    <people>
        <id>1</id>
        <name>lexy</name>
        <age>23</age>
    </people>
    <people>
        <id>3</id>
        <name>some 3</name>
        <age>20</age>
    </people>
    <people>
        <id>2</id>
        <name>some</name>
        <age>18</age>
    </people>        
    <people>
        <id>5</id>
        <name>some 5</name>
        <age>0</age>
    </people>
    <people>
        <id>4</id>
        <name>some 4</name>
        <age>25</age>
    </people>
    <people>
        <id>6</id>
        <name>some 6</name>
        <age>24</age>
    </people>
    
</test>


-------------------------- test.html ------------------------------------

<html>
<body>

<script type="text/javascript">

// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("test.xml")

// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("test.xsl")

// Transform
document.write(xml.transformNode(xsl))

document.write('Transform XML by javascript!');

</script>

</body>
</html>

参考:
    http://www.w3school.com.cn/xsl/index.asp
posted on 2007-12-29 09:13 lexy 阅读(486) 评论(1)  编辑  收藏

评论

# re: XSLT初学最简单例子 2009-04-29 21:01 apple pig
非常感谢  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: