如何使用xslt

xml
阅读 39 收藏 0 点赞 0 评论 0

file_template.xslt
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/><!-- вывести как html -->
    <xsl:template match="/"><!-- из корня документа с данными -->
        <html>
            <head>
                <title><xsl:value-of select="/data/title"/></title>
            </head>
            <body>
                <b><xsl:value-of select="/data/owner"/>:</b>&#160;<!-- вместо $nbsp; используем: &#160; -->
                <xsl:for-each select="/data/my_test/*"><!-- цикл для каждого элемента из блока: /data/my_test/* -->
                    <xsl:if test="position()!=1" xml:space="preserve">, </xsl:if><!-- проставить запятые строго между элементами (вне элементов не ставим - ни до, ни после) -->
                    <xsl:value-of select="."/><!-- получить содержимое "value-of", из узла с любым именем: select="." -->
                </xsl:for-each>

                <table border="1">
                    <b><xsl:value-of select="/data/animals/title"/>:</b>
                    <xsl:for-each select="/data/animals/dogs/dog"><!-- цикл для каждого элемента из блока: /data/animals/dogs/dog -->
                        <tr>
                            <td>
                                <xsl:value-of select="dogName"/><!-- получить содержимое "value-of", из узла с именем: dogName -->
                            </td>
                            <td>
                                <xsl:value-of select="dogWeight"/><!-- получить содержимое "value-of", из узла с именем: dogWeight -->
                                <xsl:value-of select="dogWeight/@caption"/><!-- получить содержимое "value-of", из узла с именем: dogWeight и аттрибутом: caption -->
                            </td>
                            <td>
                                <xsl:value-of select="dogColor"/><!-- получить содержимое "value-of", из узла с именем: dogColor -->
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
file.xml
<?xml version="1.0"?>
<?xml-stylesheet href="file_template.xslt" type="text/xsl"?><!-- путь до xslt стилей указан в аттрибуте href -->
<data>
    <title>Владелец и его собаки</title>
    <owner>Владелец</owner>
    <my_test>
        <first>Имя</first>
        <second>Фамилия</second>
        <second>Ла-ла-ла</second>
    </my_test>
    <animals>
        <title>Собаки</title>
        <dogs>
            <dog>
                <dogName>Шарик</dogName>
                <dogWeight caption="кг">18</dogWeight>
                <dogColor>рыжий с черными подпалинами</dogColor>
            </dog>
            <dog>
                <dogName>Тузик</dogName>
                <dogWeight caption="кг">10</dogWeight>
                <dogColor>белый с черными пятнами</dogColor>
            </dog>
            <dog>
                <dogName>Бобик</dogName>
                <dogWeight caption="кг">2</dogWeight>
                <dogColor>бело-серый</dogColor>
            </dog>
            <dog>
                <dogName>Трезор</dogName>
                <dogWeight caption="кг">25</dogWeight>
                <dogColor>черный</dogColor>
            </dog>
        </dogs>
    </animals>
</data>
评论列表


问题


面经


文章

微信
公众号

扫码关注公众号