name()函数返回当前节点的名字(如元素名、属性名),不带命名空间前缀,对无名节点返回空字符串;在命名空间下可能含前缀,但依赖处理器实现,使用时需注意节点类型与上下文。

在XSLT中,name() 函数用于获取当前节点的**名字(即元素名、属性名等)**,但它**不带命名空间前缀**,且**只对有名字的节点有效**(如元素、属性、处理指令),对文本节点、注释节点等返回空字符串。
直接调用 name()(无参数)时,它返回当前上下文节点的名字:
如果XML用了命名空间,比如 `
注意:name() 是否包含前缀,取决于XSLT处理器是否保留前缀信息 —— 大多数情况下会保留;但若前缀未定义或被省略(如使用默认命名空间),name() 可能只返回本地名或空。
在模板匹配中获取当前元素名:
匹配任意属性并输出其名:
match 模式中直接用 name()(如 match="name()='book'" 是非法的),需改用 self::book 或 local-name()='book'
self::book(比 name()='book' 更高效、更安全)name() 无参形式最常用;XSLT 2.0+ 支持 name($node) 获取指定节点名基本上就这些。name() 看似简单,但结合命名空间和节点类型时容易出错,用之前确认当前上下文节点确实有名字、且你期望的是带前缀还是不带前缀的形式。
以上就是XSLT怎么获取当前节点名 name()函数的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号