tDOM是否具备CSS中^=运算符的等效元素选择功能?
tDOM实现类属性前缀匹配的方法
tDOM基于XPath 1.0,不支持CSS选择器里的^=前缀匹配语法,但可以用XPath内置函数实现相同效果:
匹配class属性字符串以nm_开头的span元素
直接使用starts-with()函数,对应CSS中[class^="nm_"]的逻辑(仅匹配属性字符串开头为nm_的情况,比如class="nm_foo"或class="nm_foo bar"都会被选中,class="bar nm_foo"不会):
修改后的示例代码:
foreach item [$doc selectNodes {html/body/div[@class="main"]//span[starts-with(@class, "nm_")]}] { # 这里写你的元素处理逻辑 }
扩展:匹配class列表中任意类名以nm_开头的元素
如果需要支持类名在属性中任意位置(比如class="bar nm_foo"也需要选中),可以结合concat()和contains()函数,确保匹配完整的类名:
foreach item [$doc selectNodes {html/body/div[@class="main"]//span[contains(concat(" ", @class, " "), " nm_")]}] { # 这里写你的元素处理逻辑 }
内容的提问来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

