You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tDOM中如何忽略命名空间解析并选择带前缀的HTML/XML节点?

解决tDOM忽略命名空间匹配节点的问题
  • 使用XPath的local-name()函数:这是最可靠的方案,直接匹配标签的本地名称(去除命名空间前缀后的部分),完全不受前缀和命名空间URI的影响。
    示例代码:

    # 假设已完成HTML解析,得到dom对象$dom
    # 匹配所有div节点
    set div_nodes [$dom selectNodes {//*[local-name()='div']}]
    
    # 精准匹配html/body层级下的div节点
    set body_div_nodes [$dom selectNodes {//*[local-name()='html']/*[local-name()='body']/*[local-name()='div']}]
    
  • 关于之前方法无效的原因:

    • -ignorexmlns参数仅作用于无前缀的默认命名空间,而你的HTML中是带a0:前缀的显式命名空间,因此该参数无法生效。
    • tDOM文档中的%语法主要用于简化默认命名空间的查询,同样不适用于带显式前缀的命名空间场景。

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:20:27