gpt4 book ai didi

javascript - 这两个 XPath 表达式有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:20 24 4
gpt4 key购买 nike

有两个 XPath 表达式:

//LI/A[normalize-space()="fullscreen"]
//LI/A["fullscreen"]

据我了解,normalize-space() 用于 trim 字符串,如 documentation 中所述。 。那么这两个表达式应该具有相同的含义吗?

但是可以评估第一个以将元素定位在 this web page 中作者:

document.evaluate('//LI/A[normalize-space()="fullscreen"]', document).iterateNext();

,而第二个将定位不同的元素。

它们有什么区别?

最佳答案

第二个表达式实际上没有多大意义。您设置的过滤 a 元素的唯一条件是“fullscreen”字符串,该字符串的计算结果始终为 true。换句话说,//LI/A["fullscreen"] 相当于 //LI/A

您可能想根据全屏检查元素的字符串值:

//LI/A[. = "fullscreen"]

还需要注意的是,当不带参数调用 normalize-space() 时,它会自动使用当前节点的字符串值作为参数 。元素的节点字符串值为 all text nodes within the element concatenated .

关于javascript - 这两个 XPath 表达式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com