将 CSS 选择器转换为 XPATH

Posted

技术标签:

【中文标题】将 CSS 选择器转换为 XPATH【英文标题】:Convert CSS Selector to XPATH 【发布时间】:2012-09-16 08:14:56 【问题描述】:

我在how to map CSS selectors to XPATH queries 上看到了一篇在线文章,所以我想弄清楚是否有任何.NET 库可以进行映射/转换。如果您对如何执行映射有任何参考或任何想法(如果库不可用),请告诉我。

【问题讨论】:

你可以试试这个:bitbucket.org/MostThingsWeb/css2xpath/wiki/Home @MUG4N,值得回答。 我写了一个 Pascal 库来将 CSS 3 选择器转换为 XPath 2。但它直接创建了 XPath 表达式的 AST,从不将表达式保持为序列化形式,所以我认为它不会有帮助你在这里......(在 XPath 引擎中,所以你可以像 /html/css("div.whatever a")/@href 一样混合它。恕我直言,他们应该将它添加到 XPath 标准中,不再需要转换任何东西。) 作为参考,我想您会发现XPath, CSS, DOM and Selenium: The Rosetta Stone 及其随附的挂图很有用,提供了更全面的食谱。 【参考方案1】:

你可以试试这里的 Css2Xpath 库:https://bitbucket.org/MostThingsWeb/css2xpath/wiki/Home

我从未使用过,但也许您可以与我们分享您的经验。

这里是一个小例子:

String css = "div#test .note span:first-child";
String xpath = css2xpath.Transform(css);

【讨论】:

其中存在一些字符串文字错误,并且 first-childlast-child 在某些情况下不起作用,例如:[width="150"]:last-child。否则效果很好,谢谢! 大家好 - 我是 css2xpath 的作者(好吧,无论如何是端口)。我刚刚发布了一个新项目 css2xpath Reloaded 来替换这个:bitbucket.org/MostThingsWeb/css2xpath-reloaded。您不应该对字符串文字有问题,也不应该对伪类有问题。它尚未经过全面测试,但您可能想检查一下。 @ChrisLaplante - 不确定这是否是正确的提问地点,是在 c# 中的 xpath 到 css 之后吗?你知道吗? @Ram:对不起,我已经好几年没看这些东西了。我不知道。

以上是关于将 CSS 选择器转换为 XPATH的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Xpath 转换为 CSS

使用 CSS 或 XPath 选择器解析 HTML?

包含类、子选择器和相邻兄弟选择器的 CSS 选择器的等效 XPath 是啥?

CSS / XPATH 选择器查询

XPath 中 CSS 多重选择器的等价物

css 或 xpath 选择器:具有特定值的任何属性的元素