XML高级编程_第9章转换XML

preview
需积分: 0 10 下载量 96 浏览量 更新于2007-08-05 收藏 2.95MB PDF 举报
### XML高级编程_第9章转换XML #### 9.1 为什么转换XML XML(Extensible Markup Language,可扩展标记语言)作为一种跨平台、结构化的数据格式,为信息的标准化存储与交换提供了强有力的支持。然而,随着XML应用场景的多样化发展,如何高效地将XML文档从一种形式转换为另一种形式成为了开发人员关注的重点。本章将围绕XML转换展开讨论,重点涵盖转换的必要性及其背后的逻辑。 ##### 9.1.1 在不同词汇表之间转换 在实际应用中,同一个数据集可能需要符合多个不同的XML词汇表(Schema)。例如,一个出版商可能会创建一个包含书籍信息的XML文档,用于内部管理和在线展示。同时,为了与不同的合作伙伴(如在线书店)共享这些信息,需要将该文档转换成符合各自特定词汇表的形式。 **示例**:假设Wrrox公司拥有一个内部使用的书籍目录XML文档,其结构如下: ```xml <catalog> <book id="bk101"> <author>Gambardella, Matthew</author> <title>XML Developer's Guide</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications with XML.</description> </book> ... </catalog> ``` 如果一家书店(比如Amazon)要求书籍信息使用不同的XML结构来呈现,例如: ```xml <books> <book> <id>bk101</id> <title>XML Developer's Guide</title> <author>Gambardella, Matthew</author> <genre>Computer</genre> <price>44.95</price> <published>2000-10-01</published> <description>An in-depth look at creating applications with XML.</description> </book> ... </books> ``` 为了满足书店的要求,就需要将原始的Wrrox格式转换为Amazon格式。这种转换可以通过多种工具和技术实现,其中最常用的是XSLT(Extensible Stylesheet Language Transformations)。 #### 9.2 使用XSLT转换XML XSLT是一种强大的XML到XML转换语言,它允许开发者使用XPath表达式来指定源XML文档中的数据元素,并定义目标文档的结构。通过这种方式,可以轻松地将一种XML格式转换为另一种。 **示例**:以下是一个简单的XSLT样式表,用于将Wrrox格式的书籍信息转换为Amazon格式: ```xml <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <books> <xsl:apply-templates select="catalog/book"/> </books> </xsl:template> <xsl:template match="book"> <book> <id><xsl:value-of select="@id"/></id> <title><xsl:value-of select="title"/></title> <author><xsl:value-of select="author"/></author> <genre><xsl:value-of select="genre"/></genre> <price><xsl:value-of select="price"/></price> <published><xsl:value-of select="publish_date"/></published> <description><xsl:value-of select="description"/></description> </book> </xsl:template> </xsl:stylesheet> ``` 通过以上XSLT样式表,Wrrox格式的书籍信息可以被准确无误地转换为Amazon所需的格式。 #### 9.3 创建动态文档 除了从一种词汇表转换到另一种外,XML转换还可以用于创建动态文档。这类转换允许用户根据个人需求对文档进行重组、过滤和排序。例如,允许用户点击表格列头来对内容进行排序。 **示例**:假设有一个书籍目录表格,用户可以根据价格或出版日期进行排序。这种动态文档的创建通常需要结合XSLT和DOM(Document Object Model)技术来实现。 #### 9.4 转换成另一种解释语言 XML转换还用于将数据准备成适合不同设备显示的形式,例如HTML、WAP、SVG等。例如,将XML格式的书籍信息转换为HTML格式以便在网页上展示,或者转换为SVG格式以便在支持矢量图形的设备上查看。 XML转换是一项关键的技术,它不仅有助于解决跨平台和跨应用之间的数据交换问题,还能实现数据的动态展示和个性化定制。通过对XSLT等工具的学习和掌握,开发人员可以更加灵活高效地管理XML数据。