如何使用XSLT的一个示范

写了个XSLT小示范,仅希望能给初学者一点参考价值。实例仅为了更多的应用到XSLT的各个元素去表现功能而并非最佳实践。在读这篇文章之前你应该就关于XSLT的基础概念有一些基本了解以及对XPath有比较熟练的掌握,因为XSLT是基于XPath去匹配需要应用的模板以及定位节点等。这篇文章不再赘述,

在这篇实例中主要应用了以下一些常用的XSLT元素,如:<xsl:stylesheet>,<xsl:apply-templates>,<xsl:attribute>,<xsl:attribute-set>,<xsl:choose>,<xsl:comment>,<xsl:copy>,<xsl:element>,<xsl:for-each>,<xsl:if>,<xsl:otherwise>,<xsl:output>,<xsl:sort>,<xsl:template>,<xsl:text>,<xsl:value-of>,<xsl:variable>,<xsl:when>等元素以及显示怎样显示HTML空格(&nbsp;)使用自定义函数等都有涉及。

直接进入主题吧,首先看一下最直观的显示输出吧,如下图:

如何使用XSLT的一个示范

这里是原始的XML文件内容(message.xml):

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 rel. 2 sp2 () by Administrator -->
<?xml-stylesheet type="text/xsl" href="https://www.linuxidc.com/messages.xsl"?>
<messages>
    <message>
        <sender>gukaitong@gmail.com</sender>
        <to>anonymous@gmail.com
                <group>
                <address>111@gmail.com</address>
                <address>222@gmail.com</address>
                <address>aaa@gmail.com</address>
                <address>bbb@gmail.com</address>
                <address>ccc@gmail.com</address>
            </group>
        </to>
        <subject>This is a sample</subject>
        <datetime date="2008-12-11" time="12:00:00" formatted="12/11/2008 12:00AM">2008-12-11T12:00:00Z</datetime>
        <body>
            Are you interested in?
            <attachments>
                <attachment>
                    <message>
                        <sender>anonymous@gmail.com</sender>
                        <to>gukaitong@gmail.com</to>
                        <body>
We strongly recommend the following books
                            <books xmlns:amazon="http://www.amazon.com/books/schema">
                                <amazon:book>
                                    <name>Professional C# 2008 </name>
                                    <country>USA</country>
                                    <price>37.79</price>
                                    <year>2007</year>
                                </amazon:book>
                                <amazon:book>
                                    <name>Microsoft Visual C# 2008 Step by Step </name>
                                    <country>USA</country>
                                    <price>26.39 </price>
                                    <year>2008</year>
                                </amazon:book>
                                <amazon:book>
                                    <name>C# in Depth</name>
                                    <country>USA</country>
                                    <price>29.69 </price>
                                    <year>2006</year>
                                </amazon:book>
                                <amazon:book>
                                    <name>Thinking in Java</name>
                                    <country>USA</country>
                                    <price>23.69 </price>
                                    <year>2004</year>
                                </amazon:book>
                            </books>
                        </body>
                    </message>
                </attachment>
            </attachments>
        </body>
    </message>
    <message>
        <sender>333@gmail.com</sender>
        <to>444@gmail.com</to>
        <subject>No title</subject>
        <body/>
    </message>
</messages>

这就是XSLT文件(message.xsl):

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/71cb57c66d08a44ec53c183bdf1ddab0.html