站内搜索:     
站点首页破釜学院编程开发XSL教程 → XSLT的处理模型(10)
正在加载相关信息.....
Web 站内搜索
XSLT的处理模型(10)
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2004-08-02 人气: 出处:饮水思源站
请注意上面的输出中,出现的第一个元素不是html而是test元素,因此不能满足条件(
2)因此得到的输出默认为XML形式;转换结果如下:
<?xml version="1.0" encoding="UTF-16"?>
<test>dfdf</test>
<html>10  + 5  + 7  = 22</html>
但是如果将test元素去掉,即原来的XSLT文档变成:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transfor
m">
        <xsl:template match="/">       
        <html>
                <xsl:text/>
                <xsl:value-of select="//BBB[1]"/>
                <xsl:text> + </xsl:text>
                <xsl:value-of select="//BBB[2]"/>
                <xsl:text> + </xsl:text>
                <xsl:value-of select="//BBB[3]"/>
                <xsl:text> = </xsl:text>
                <xsl:value-of select="sum(//BBB)"/>
                </html>
        </xsl:template>
</xsl:stylesheet>
这是的转换以后的代码就变成
<html>10  + 5  + 7  = 22</html>
即原来的xml处理指令消失,转换结果是一个HTML文档。
XSLT可以将结果树输出成为纯文本,如下的例子就表示输出的结果是一个纯文本:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com by Ya (amonic) -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transfor
m">
        <xsl:output method="text"/>
        <xsl:template match="/">
                <html>
                        <xsl:text/>
                        <xsl:value-of select="//BBB[1]"/>
                        <xsl:text> + </xsl:text>
                        <xsl:value-of select="//BBB[2]"/>
                        <xsl:text> + </xsl:text>
                        <xsl:value-of select="//BBB[3]"/>
                        <xsl:text> = </xsl:text>
                        <xsl:value-of select="sum(//BBB)"/>
                </html>
        </xsl:template>
</xsl:stylesheet>
它的转换结果是:10 + 5 + 7 = 22,该结果是一个纯文本。
我们最后看一下encoding和indent属性
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com by Ya (amonic) -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transfor
m">
        <xsl:output method="xml" indent="yes" encoding="utf-16"/>
        <xsl:template match="/">
                <html>
                        <xsl:text/>
                        <xsl:value-of select="//BBB[1]"/>
                        <xsl:text> + </xsl:text>
                        <xsl:value-of select="//BBB[2]"/>
                        <xsl:text> + </xsl:text>
                        <xsl:value-of select="//BBB[3]"/>
                        <xsl:text> = </xsl:text>
                        <xsl:value-of select="sum(//BBB)"/>
                </html>
        </xsl:template>
</xsl:stylesheet>
输出的结果是:
<?xml version="1.0" encoding="UTF-16"?>
<html>10  + 5  + 7  = 22</html>
可以看到默认得编码已经变成utf-16,并且自动完成缩进。

>>>> 进入论坛交流 <<<<