gpt4 book ai didi

html - XPath 和 CSS 查询算法的区别

转载 作者:太空狗 更新时间:2023-10-29 13:31:47 28 4
gpt4 key购买 nike

我想知道为什么有人会想要使用 CSS 选择器而不是 XPath 选择器,反之亦然,如果他可以使用其中任何一个。我认为理解处理这些语言的算法将解决我的疑惑。

有很多关于 XPath 和 CSS 选择器的单独文档,但我发现很少有比较。另外,我不太使用 CSS 选择器。

这是我读到的关于差异的内容。 (这三个引用文献讨论了在 Selenium 中使用 XPath 和 CSS 选择器来查询 HTML,但我的疑惑是笼统的。)

看起来 CSS 选择算法以某种方式针对 HTML 进行了优化,但我不知道如何进行优化。

  1. 是否有关于 CSS 和 XPath 查询算法如何工作以及它们有何不同的论文?
  2. 我遗漏的语言之间是否存在其他抽象差异?

最佳答案

主要区别在于您的目标文档结构的稳定性:

  1. 当结构重要和/或稳定时,XPath 是一种很好的查询语言。您通常指定路径、条件、精确偏移量……它也是一种很好的检索一组相似对象的查询语言,正因为如此,它与 XQuery 有着密切的关系。此处文档具有稳定的结构,您必须检索重复/相似的部分

  2. CSS 选择器更适合 CSS 样式表。这些不关心文档结构,因为这个变化很大。想一想应用于网站所有 HTML 页面的一个 CSS 样式表。每个页面的内容和结构都不同。由于结构的变化,这里的 CSS 选择器更好。您会注意到访问更多是基于标签的。大多数 CSS 语法指定一组元素、属性、id、类……而不是它们的结构。在这里,您必须找到在文档结构中没有明确位置但标有特定属性的部分。


更新:仔细查看您的问题后,我意识到您对当前的实现更感兴趣,而不是查询语言的性质。在那种情况下,我不能给你你正在寻找的答案。我只能假设原因仍然是一个比另一个更依赖于结构。

例如,在 XPath 中,您必须跟踪您正在处理的文档的结构。另一方面,当特定标 checkout 现时,CSS 选择器会被触发,它之前出现的内容通常无关紧要。我可以想象实现一个在您阅读文档时工作的 CSS 选择器算法会容易得多,而 XPath 在更多情况下您确实需要完整的文档和/或严格跟踪它正在阅读的内容(因为历史和你正在阅读的内容的背景更重要)

现在,不要对我的更新太认真。我在这里只是猜测,因为我有一些语言解析方面的背景,但实际上我没有为数据查询设计的经验。

关于html - XPath 和 CSS 查询算法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140940/

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