base-uri() 返回当前上下文节点的基本 URI:文档节点返回文档URI,其他节点继承最近xml:base或祖先URI,动态节点默认为空序列;常与resolve-uri()配合解析相对路径。

base-uri() 是 XSLT 2.0 及更高版本(包括 XSLT 3.0)中用于获取当前节点**基本 URI(Base URI)** 的内置函数。它返回一个字符串,表示该节点在解析时所依据的 URI(通常是文档或片段的来源地址),对处理相对路径、解析 xlink:href、xml:base 或生成绝对链接非常有用。
它返回当前上下文节点的 base URI,具体取决于节点类型:
/),通常返回整个 XML 文档的 URI(如 file:///path/to/doc.xml 或 https://example.com/data.xml);xml:base 属性值;xml:base,就沿用父元素或文档的 base URI;<element></element> 动态创建的),base URI 默认为 ()(空序列),除非显式用 xsl:copy + select="@*" inherit-namespaces="yes" 等方式保留。假设你有如下 XML:
对应 XSLT 片段:
输出可能为:
https://example.com/base/ + page.html<param name="base">),或依赖处理器扩展(如 Saxon 的 saxon:base-uri(),但不通用);base-uri() 默认作用于当前 context node;也可显式指定:base-uri(some-node);(),建议配合 string() 或判断避免报错:string(base-uri()) 或 if (base-uri()) then base-uri() else 'unknown'。常与 resolve-uri(@href, base-uri()) 配合,把相对引用转为绝对 URI:
例如 @href="page.html" 在 base 为 https://example.com/base/ 下,结果就是 https://example.com/base/page.html。
基本上就这些。用好 base-uri() 能让 XSLT 更可靠地处理带路径引用的 XML 场景,尤其在聚合、重发布或生成链接时很实用。
以上就是XSLT怎么获取基本URI base-uri()的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号