exclude-result-prefixes用于防止XSLT中仅内部使用的命名空间前缀被复制到输出结果中,需在xsl:stylesheet上声明空格分隔的前缀列表,但显式字面元素或xsl:copy-of仍会保留命名空间。

在XSLT中处理命名空间,核心是让处理器正确识别源文档和结果文档中的命名空间,避免前缀冲突或冗余声明。exclude-result-prefixes 的作用就是告诉XSLT处理器:这些命名空间前缀只在样式表内部使用(比如匹配或选择时),不要把它们原样复制到输出结果里。
你通常会遇到这三种情况:
它是一个空格分隔的前缀列表,写在 xsl:stylesheet 或 xsl:transform 根元素上:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://example.com/ns" xmlns:ex="http://example.com/ext" exclude-result-prefixes="ns ex">
这样写之后:
如果你在样式表中声明了默认命名空间(xmlns="http://example.com/default"),它不会被 exclude-result-prefixes 影响,因为默认命名空间没有前缀。要阻止它出现在结果中,得靠其他方式:
几个容易踩的坑:
基本上就这些。命名空间不是语法糖,是XML的底层契约;exclude-result-prefixes 不是省事开关,而是输出洁净度的控制阀。理清“哪里声明、哪里匹配、哪里输出”,问题就解决一大半。
以上就是如何在XSLT中处理命名空间,exclude-result-prefixes属性有什么用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号