本书系统地介绍了使用XSLT和XPath进行XML转换的方法。本书概念清晰,循序渐进,并结合大量实例,详细讨论了进行XML转换所涉及的样式表、元素、函数、表达式等的具体使用方法,还介绍了三种免费的XSLT解析器,并在书后附录中给出了典型案例及应用。本书附赠的光盘中包含书中所有例子的源程序代码。
XSLT和XPath――XML转换指南(附光盘)
内容提要 :
本书系统地介绍了使用XSLT和XPath进行XML转换的方法。本书概念清晰,循序渐进,并结合大量实例,详细讨论了进行XML转换所涉及的样式表、元素、函数、表达式等的具体使用方法,还介绍了三种免费的XSLT解析器,并在书后附录中给出了典型案例及应用。本书附赠的光盘中包含书中所有例子的源程序代码。
目录 :
第1章 一张XSLT样式表的剖析 1
1.1 什么是标记 1 1.2 什么是XSLT 2 1.3 什么是XPath 3 1.4 XSLT样式表概念 4 1.5 XSLT术语 8 1.5.1 事件的根 8 1.5.2 引出分支:节点 9 1.5.3 文档顺序 10 1.6 全面理解“家庭”树:XSLT中寻址 12 第2章 XSLT样式表的基本概念 15 2.1 XSLT样式表的样板 15 2.1.1 文档元素: 2.1.2 文字结果元素样式表 18 2.1.3 文档元素的子元素 19 2.2 在XML文档中嵌入样式表 20 2.3 XSLT样式表术语 21 2.3.1 样式表 21 2.3.2 样式表元素和转换元素 22 2.3.3 结果树 22 2.3.4 源树 22 2.3.5 空白域 23 2.3.6 良好的格式 23 2.4 XSLT样式表的XML成分 24 2.4.1 XML声明 24 2.4.2 文档类型声明 25 第3章 高级的样式表 26 3.1 模板:构建转换模块 26 3.1.1 模板处理 26 3.1.2 3.1.3 3.1.4 模板的成分 34 3.1.5 3.1.6 3.1.7 3.2 内嵌模板规则 43 第4章 XPath表达式 45 4.1 XPath句法和术语 45 4.1.1 XPath中文件顺序 46 4.1.2 上下文节点 46 4.1.3 当前节点 47 4.1.4 上下文尺寸 47 4.1.5 邻近位置 47 4.1.6 表达式 47 4.1.7 定位路径 55 4.1.8 轴 56 4.1.9 节点检测 60 4.1.10 判定 61 4.2 缩写 62 第5章 XPath 函数 64 5.1 XPath 函数库 64 5.2 节点集核心函数组 68 5.2.1 id()函数 69 5.2.2 local-name()函数 71 5.2.3 name()函数 72 5.2.4 namespace-uri()函数 73 5.2.5 last()函数 76 5.2.6 position()函数 77 5.2.7 count()函数 79 5.3 字符串核心函数组 80 5.3.1 string()函数 80 5.3.2 字符串转换规则 81 5.3.3 concat()函数 83 5.3.4 substring()函数 84 5.3.5 substring-after()函数 87 5.3.6 substring-before()函数 88 5.3.7 normalize-space()函数 89 5.3.8 translate()函数 90 5.3.9 contains()函数 93 5.3.10 starts-with()函数 95 5.3.11 string-length()函数 96 5.4 布尔值核心函数组 97 5.4.1 boolean()函数 97 5.4.2 布尔值转换规则 98 5.4.3 false()函数 98 5.4.4 true()函数 99 5.4.5 lang()函数 99 5.4.6 not()函数 100 5.5 数字核心函数组 101 5.5.1 number()函数 101 5.5.2 数值转换规则 102 5.5.3 sum()函数 102 5.5.4 ceiling()函数 103 5.5.5 floor()函数 104 5.5.6 round()函数 104 第6章 使用XSLT构建新的XML文档 106 6.1 使用LRE产生元素 106 6.2 6.3 使用 6.4 6.4.1 name属性 114 6.4.2 use-attribute-sets属性 114 6.4.3 通过 6.5 6.5.1 disable-output-escaping 属性 117 6.5.2 使用 6.5.3 不使用 6.6 为LRE添加属性 121 6.6.1 属性值模板 122 6.6.2 在LRE中使用 6.6.3 在LRE中使用 元素和xsl:use-attribute-sets属性 123 6.7 注释和处理指令 124 6.7.1 6.7.2 指令元素 125 6.8 名称空间的别名 126 第7章 使用多样式表 128 7.1 处理外部的样式表 128 7.1.1 7.1.2 7.1.3 元素的比较 132 7.1.4 7.2 模板规则处理和优先级 138 7.2.1 当前模板规则 138 7.2.2 模板规则冲突的解决方法 138 7.2.3 替换导入模板的优先次序和优先级 140 第8章 变量的处理 143 8.1 变量的声明和赋值 143 8.1.1 8.1.2 8.1.3 8.2 结果树段 146 8.3 使用变量引用 148 8.3.1 局部和全局变量的比较 148 8.3.2 复制声明 149 8.3.3 使用 8.4 8.5 和 第9章 复制、迭代和XSLT条件处理元素 154 9.1 9.2 9.3 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.5 9.6 9.6.1 9.6.2 例外条件 9.6.3 在 和 9.7 9.7.1 9.7.2 9.7.3 9.7.4 value属性 178 9.7.5 format属性 178 9.7.6 9.7.7 letter-value属性 180 9.7.8 grouping-separator属性 180 9.7.9 grouping-size属性 180 9.7.10 第10章 控制输出选项 182 10.1 10.1.1 10.1.2 以xml方式输出文件 186 10.1.3 以html方式输出文件 189 10.1.4 以text方式输出文件 192 10.2 顶层元素 和 10.3 错误消息和日志的产生 194 第11章 XSLT函数和相关的XSLT元素 197 11.1 XSLT函数组 197 11.1.1 XSLT的node-set函数 198 11.1.2 XSLT的current()函数 204 11.1.3 XSLT的key()函数和 顶层元素 205 11.2 XSLT的字符串函数 210 11.2.1 XSLT的system-property()函数 210 11.2.2 XSLT的generate-id()函数 211 11.2.3 XSLT的format-number()函数 214 11.2.4 11.2.5 XSLT的unparsed-entity-uri()函数 217 11.3 XSLT的布尔型函数组 217 11.3.1 XSLT的element-available()函数 217 11.3.2 XSLT的function-available()函数 220 第12章 XSLT处理器、XSLT扩展和Java 223 12.1 XSLT处理器 223 12.2 扩展元素和扩展函数 224 12.3 名称空间 224 12.3.1 名称空间的原理 224 12.3.2 名称空间剖析 225 12.3.3 缺省名称空间 226 12.3.4 限制命名和无分隔符命名 226 12.3.5 XSL名称空间 227 12.3.6 使用其他的名称空间 227 12.3.7 缺省XML名称空间 228 12.3.8 声明扩展名称空间及扩展名称 空间的应用性 228 12.3.9 处理器扩展功能、Java附加功能 和XSLT W3C规范的前景 229 12.3.10 整合XSLT处理器和OASIS的XSLT 整合委员会 229 12.4 Java 230 12.5 商业XSLT处理器 233 12.5.1 Sun公司的XSLTC 233 12.5.2 Oracle的XML开发工具 234 12.5.3 安装Oracle XSL处理器 234 12.5.4 Microsoft的MSXML 235 12.5.5 安装最新版本的Microsoft XML 解析器 237 第13章 Xalan、Saxon和XT 238 13.1 Xalan 238 13.1.1 Xalan-C++ 238 13.1.2 Xalan-J 241 13.1.3 使用Eric Lawson GUI界面Xalan-J 242 13.1.4 安装Xalan-J的基本命令行界面 242 13.1.5 使用Xalan-J的命令行界面方式 和扩展功能 243 13.1.6 Xalan-J处理器扩展 244 13.2 Saxon 248 13.2.1 在Solaris/UNIX或Windows Java中 完全安装Saxon 248 13.2.2 在Windows下安装Instant Saxon 249 13.2.3 Saxon选项 249 13.2.4 Saxon命令行参数 250 13.2.5 Saxon扩展 250 13.3 XT 262 13.3.1 在Windows上安装XT 263 13.3.2 在UNIX上安装XT和XP 263 13.3.3 在Macintosh上安装XT和XP 264 13.3.4 XT扩展 266 13.3.5 XT处理器的限制 267 13.4 使用Saxon、Xalan或XT处理器产生 多输出文档 268 附录A 案例学习 272 附录B 分组使用Muenchian方法 300 附录C 在人工智能“N-Queens”问题中 使用XSLT 303 |