如何用XSLT合并多个XML文件 document()函数

畫卷琴夢
发布: 2025-12-19 16:23:27
原创
768人浏览过
XSLT 合并多个 XML 文件的核心是 document() 函数,它支持加载外部文档并访问其节点,可用于跨文件数据整合;基本用法包括单文件加载、多文件加载(XSLT 2.0+)及指定基准节点解析路径。

如何用xslt合并多个xml文件 document()函数

用 XSLT 合并多个 XML 文件,核心是 document() 函数。它允许你在当前样式表中加载并访问外部 XML 文档的节点,从而实现跨文件的数据读取与整合。

document() 函数的基本用法

document() 是 XSLT 内置函数,支持单个或多个 URI 参数。最常见的是传入一个字符串路径(相对或绝对),返回对应 XML 文档的根节点;也可传入节点集,对每个节点计算其 base URI 并加载对应文档。

  • 简单加载:document('data1.xml') —— 加载同目录下的 data1.xml
  • 加载多个:document(('a.xml', 'b.xml', 'c.xml')) —— 返回三个文档的根节点组成的节点集(XSLT 2.0+)
  • 带上下文解析:document('config.xml', /) —— 显式指定基准节点(避免因当前上下文影响路径解析)

合并多个文件的典型场景示例

假设有两个文件:users.xmlorders.xml,你想生成一份“用户+订单详情”的汇总报告。

users.xml:


  Alice
  Bob

orders.xml:


  Book
  Pen

在主 XSLT 中,可这样关联数据:

X-Node企业快速建站1.0.6.0801
X-Node企业快速建站1.0.6.0801

特色介绍: 1、ASP+XML+XSLT开发,代码、界面、样式全分离,可快速开发 2、支持语言包,支持多模板,ASP文件中无任何HTML or 中文 3、无限级分类,无限级菜单,自由排序 4、自定义版头(用于不规则页面) 5、自动查找无用的上传文件与空目录,并有回收站,可删除、还原、永久删除 6、增强的Cache管理,可单独管理单个Cache 7、以内存和XML做为Cache,兼顾性能与消耗 8、

X-Node企业快速建站1.0.6.0801 0
查看详情 X-Node企业快速建站1.0.6.0801


  
    
    
      
        
      

    

  

注意事项与常见问题

document() 行为受处理器支持和安全策略影响,需注意以下几点:

  • 路径是相对于 调用时的样式表位置,不是输入 XML 的位置(除非显式传入基准节点)
  • 多数处理器默认禁止访问本地文件系统以外的资源(如 HTTP URL),需配置白名单或启用相应选项
  • XSLT 1.0 不支持直接传入字符串序列(如 ('a.xml','b.xml')),需用循环或递归方式逐个加载
  • 若文件不存在或格式错误,document() 返回空节点集,不会报错——建议用 count($doc/*)$doc/node() 检查是否加载成功

进阶技巧:动态文件名与参数化合并

可通过 xsl:param 传入文件路径,让合并逻辑更灵活:


配合命令行工具(如 Saxon、xsltproc),可运行时注入参数:

saxon -s:users.xml -xsl:merge.xsl -param orderFile="prod_orders.xml"

这样同一份 XSLT 就能适配不同环境的数据源。

以上就是如何用XSLT合并多个XML文件 document()函数的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号