【问题标题】:XPath to CSS Selector?XPath 到 CSS 选择器?
【发布时间】:2012-05-28 05:14:06
【问题描述】:

您将如何转换表单的 xpath 选择器:

/html[1]/body[1]/table[1]/tr[3]/td[1]/table[1]/tr[1]/td[2]/table[1]/tr[1]/td[2]

它的 css 选择器等价物?

或者,我需要为 HtmlAgilityPack.HtmlNode 生成 CSS 选择器

【问题讨论】:

  • 您不希望选择器那么长。您没有合理的理由要这样做。请告诉我们你为什么认为你需要这个......
  • (我猜你可以用空格替换/,用nth-child(\d)替换[\d]
  • @sg3s:您需要将(?<!^)/ 替换为> 而不是空格。如果要替换为空格,则需要替换双斜杠//
  • @BoltClock 我把它简化了,你说得对。

标签: c# xpath css-selectors html-agility-pack


【解决方案1】:

这些 div 和表中是否没有属性(id 或类)?如果有的话,那么 htmlagilitypack 的工作就容易多了。

【讨论】:

    【解决方案2】:

    我不知道为什么你绝对需要一个 CSS 选择器(如果不是所有的 HTML 解析器和测试套件都支持 CSS 选择器 XPath),但是哎呀:

    html > body > table:nth-child(1) > tr:nth-child(3) > td:nth-child(1) > table:nth-child(1) > tr:nth-child(1) > td:nth-child(2) > table:nth-child(1) > tr:nth-child(1) > td:nth-child(2)
    

    我只是不包括 htmlbody 的伪类,因为它们是隐含的。

    【讨论】:

    • 如何在 HtmlAgilityPack 中使用 CSS 选择器?
    • @Nico:哦,我错了——HtmlAgilityPack 不支持 CSS 选择器。不过,你为什么需要一个?
    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2012-02-18
    • 2020-05-12
    • 2014-09-01
    • 2013-06-21
    • 2020-04-23
    相关资源
    最近更新 更多