将CSS选择器转换为XPATH

5

我在网上看到一篇关于如何将CSS选择器映射为XPATH查询的文章(how to map CSS selectors to XPATH queries),因此我正在尝试找出是否有任何.NET库可以执行映射/转换。如果没有库可用,请告诉我是否有任何参考或任何执行映射的想法。


你可以尝试这个链接:https://bitbucket.org/MostThingsWeb/css2xpath/wiki/Home - MUG4N
1
@MUG4N,这值得一份回答。 - LarsH
我编写了一个 Pascal 库,用于将 CSS 3 选择器转换为 XPath 2。但它直接创建 XPath 表达式的 AST,从未保留序列化形式的表达式,因此我不认为它会对你有所帮助...(在 XPath 引擎内部,因此您可以像 /html/css("div.whatever a")/@href 这样混合使用它。在我看来,他们应该将这个功能添加到 XPath 标准中,不再需要进行任何转换了。) - BeniBela
作为参考,我认为您会发现XPath、CSS、DOM和Selenium:罗塞塔石头及其附带的墙贴非常有用,提供了更全面的指南。 - Michael Sorens
1个回答

7
你可以尝试使用这里找到的Css2Xpath库: https://bitbucket.org/MostThingsWeb/css2xpath/wiki/Home
我从未使用过它,但也许你可以与我们分享你的经验。
以下是一个小样例的用法:
String css = "div#test .note span:first-child";
String xpath = css2xpath.Transform(css);

1
那里有一些字符串字面量的错误,而且 first-childlast-child 在某些情况下不起作用,比如 [width="150"]:last-child。否则它运行得相当好,谢谢! - Kiril
1
大家好 - 我是css2xpath的作者(至少是移植部分)。我刚发布了一个新项目,css2xpath Reloaded,以替换这个项目:https://bitbucket.org/MostThingsWeb/css2xpath-reloaded。您不应该遇到字符串文字或伪类的问题。它还没有完全测试,但您可能想要检查一下。 - Chris Laplante
@ChrisLaplante - 不确定这是否是正确的地方来问,我需要在C#中进行XPath到CSS的转换?你知道有没有相关的内容吗? - Ram
@Ram:抱歉,我已经多年没有看过这些东西了。我不知道。 - Chris Laplante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接