XSLT实战:高效编辑XML的7大技巧

张开发
2026/4/16 14:56:43 15 分钟阅读

分享文章

XSLT实战:高效编辑XML的7大技巧
XSLT 编辑 XML 的基础概念XSLTExtensible Stylesheet Language Transformations是一种用于将 XML 文档转换为其他格式的语言常用于编辑、转换或重新组织 XML 数据。XSLT 使用模板规则匹配 XML 节点并通过 XPath 表达式选择和处理数据。简单的 XSLT 转换示例以下是一个基本的 XML 文件data.xml包含一些书籍信息?xml version1.0 encodingUTF-8? books book id1 titleXSLT Programming/title authorJohn Doe/author price29.99/price /book book id2 titleXML Basics/title authorJane Smith/author price24.99/price /book /books使用 XSLT 文件transform.xslt将 XML 转换为 HTML?xml version1.0 encodingUTF-8? xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ html body h2Book List/h2 table border1 tr thTitle/th thAuthor/th thPrice/th /tr xsl:for-each selectbooks/book tr tdxsl:value-of selecttitle//td tdxsl:value-of selectauthor//td tdxsl:value-of selectprice//td /tr /xsl:for-each /table /body /html /xsl:template /xsl:stylesheet运行 XSLT 转换后输出为 HTML 表格显示书籍信息。使用条件语句编辑 XMLXSLT 支持条件逻辑例如xsl:if和xsl:choose。以下示例筛选价格高于 25 的书籍xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ html body h2Expensive Books/h2 ul xsl:for-each selectbooks/book xsl:if testprice 25 li xsl:value-of selecttitle/ - $xsl:value-of selectprice/ /li /xsl:if /xsl:for-each /ul /body /html /xsl:template /xsl:stylesheet修改 XML 结构XSLT 可以重新组织 XML 数据。以下示例将书籍按作者分组xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ authors xsl:for-each selectbooks/book author name{author} book xsl:value-of selecttitle/ /book /author /xsl:for-each /authors /xsl:template /xsl:stylesheet输出是一个新的 XML 结构按作者分类书籍。使用 XSLT 生成新的 XML 属性可以通过 XSLT 动态添加或修改 XML 属性。以下示例为每本书添加一个currency属性xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ books xsl:for-each selectbooks/book book id{id} currencyUSD xsl:copy-of selecttitle|author|price/ /book /xsl:for-each /books /xsl:template /xsl:stylesheet使用 XSLT 合并多个 XML 文件XSLT 可以合并多个 XML 文件的数据。假设有另一个文件more_books.xml以下示例合并两个文件的内容xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ combined_books xsl:copy-of selectdocument(data.xml)/books/book/ xsl:copy-of selectdocument(more_books.xml)/books/book/ /combined_books /xsl:template /xsl:stylesheet使用 XSLT 进行数据计算XSLT 支持简单的计算功能。以下示例计算书籍的平均价格xsl:stylesheet version1.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ average_price xsl:value-of selectsum(books/book/price) div count(books/book)/ /average_price /xsl:template /xsl:stylesheet使用 XSLT 2.0 的高级功能XSLT 2.0 引入了更多功能例如分组和正则表达式。以下示例使用xsl:for-each-group按作者分组xsl:stylesheet version2.0 xmlns:xslhttp://www.w3.org/1999/XSL/Transform xsl:template match/ grouped_books xsl:for-each-group selectbooks/book group-byauthor author name{current-grouping-key()} xsl:for-each selectcurrent-group() book xsl:value-of selecttitle/ /book /xsl:for-each /author /xsl:for-each-group /grouped_books /xsl:template /xsl:stylesheet总结XSLT 是一种强大的工具可用于编辑、转换和重新组织 XML 数据。通过模板匹配、条件逻辑和 XPath 表达式可以实现复杂的 XML 处理任务。从简单的数据提取到高级的分组和计算XSLT 提供了灵活的解决方案。

更多文章