XSLT专业站 - 提供xslt和xml相关的资料书籍和教程  
XSLT专业站 - 提供xslt和xml相关的资料书籍和教程
网站地图  收藏本站
首页 | 热门文章 | 精彩实例 | 经典教程 | XSLT语法详解 | 资料下载 | 休闲天地 | 交流论坛
  当前位置:首页>经典教程>文章内容
XSLT的处理模型(3)
来源:XSLT.org.cn 作者:XSLT专业站 发布时间:2007-08-04  
XSLT的处理模型(3)
 那么一个XML文档,在XSLT看来,它的树形模型到底是什么样的呢?我们还是以代码

<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="helloworld.xslt"?>
<root>
        <name>Hehangjun</name>
        <name>何杭军</name>
</root>

为例,对应于该XML文档的树形用下图表示:
      从上图中我们可以看出两点,XSLT的树模型非常类似于DOM规范中规定的树形结构;并且XSLT的树模型省略了处理指令,不仅如此在XSLT的源树结构中还省略了XML文档中的注释元素,因此对于源树来说根结点只有一个元素节点,这一点特别重要。结果树的模型在总体上和源树非常类似,但是也有一些细微的不同,最明显得差别表现在结果树的根元素可以有不止一个的子节点,这样XSLT的转换结果中就可能出现多个文档元素,换句话说转换出来的XML文档可能不是一个语法正确的XML文档(XML语法规定文档只能有一个文档元素)。这在XSLT的规范中是合法的,XSLT规范规定"结果树不构成良定义的XML是可能的,但是它必须可以充当良定义的XML文档的部分",它的意思是转换得到的文档除了"只有一个文档元素"这一条不满足XML语法的要求意外,其它的XML语法都满足。举例来说,下述的转换结果是XSLT能做到的:

<people>
<name>Hehangjun</name>
</people>
<people>
<name>何杭军</name>
</people>

要得到上述合理的输出,可以这样写XSLT文档:

<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="/root">
                <xsl:for-each select="name">
                        <people><name>
                        <xsl:value-of select="."/>
                        </name></people>
                </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

标题: XSLT的处理模型(3)
关键字:处理模型 XML XSLT 元素 结果 转换 语法
上一篇:XSLT的处理模型(2)   下一篇:XSLT的处理模型(4)
  经典教程热点文章
·XSLT的处理模型(1)
·XSL基础教程(一)
·XSLT的处理模型(2)
·XSLT的处理模型(4)
·XSLT的处理模型(5)
·XSLT的处理模型(6)
·XSLT的处理模型(7)
·XSLT的处理模型(8)
·XSLT的处理模型(9)
·XSLT的处理模型(10)
·XSL基础教程(二)
·XSL基础教程(三)
  经典教程相关文章
·XSLT的处理模型(2)
·XSLT的处理模型(4)
·XSLT的处理模型(1)
·XSLT的处理模型(5)
·XSLT的处理模型(6)
·XSLT的处理模型(7)
·XSLT的处理模型(8)
·XSLT的处理模型(9)
·XSLT的处理模型(10)
·XSL基础教程(一)
·XSL基础教程(二)
·XSL基础教程(三)
Copyright© 2007 xslt.org.cn All rights reserved.