如何将Xpath转换为CSS
我的xpath是:如何将Xpath转换为CSS,css,xpath,css-selectors,html-parsing,jsoup,Css,Xpath,Css Selectors,Html Parsing,Jsoup,我的xpath是:/html/body/div/table/tbody/tr[2]/td[4] 我需要一个CSS来在jsoup选择器中使用它 我发现xpath和css之间有一个比较:,在他们的示例中(第二个元素在页面上的任何地方)说我做不到。XpathXpath=(//E)[2]CSSN\A 也许我找不到我想要的。有什么想法吗 下面是我试图解析的html(我需要获取值:1和3): 面板颜色 锁定 不合格的 有资格的 完成了 全部的 一个 0 0 1. 12 53 二 0 0 3. 42 26
/html/body/div/table/tbody/tr[2]/td[4]
我需要一个CSS来在jsoup选择器中使用它
我发现xpath和css之间有一个比较:,在他们的示例中(第二个元素在页面上的任何地方
)说我做不到。XpathXpath=(//E)[2]
CSSN\A
也许我找不到我想要的。有什么想法吗
下面是我试图解析的html(我需要获取值:1
和3
):
面板颜色
锁定
不合格的
有资格的
完成了
全部的
一个
0
0
1.
12
53
二
0
0
3.
42
26
虽然像(/E)[2]
这样的表达式不能用CSS选择器表示,但是像E[2]
这样的表达式可以使用:nth-of-type()
伪类进行模拟:
html > body > div > table > tbody > tr:nth-of-type(2) > td:nth-of-type(4)
你在找这样的东西吗: 对我有好处
//Author: Oleksandr Knyga
function xPathToCss(xpath) {
return xpath
.replace(/\[(\d+?)\]/g, function(s,m1){ return '['+(m1-1)+']'; })
.replace(/\/{2}/g, '')
.replace(/\/+/g, ' > ')
.replace(/@/g, '')
.replace(/\[(\d+)\]/g, ':eq($1)')
.replace(/^\s+/, '');
}
您应该学习如何编写css选择器,但要快速修复,请尝试: 例如,我输入了xpath,它会吐出:
html>body>div>table>tbody>tr:nth类型(2)>td:nth类型(4)
试试看。但是您是在页面的任何位置查找第二个元素,还是在查找其父元素的第二个子元素?如果是前者,就不能用CSS来完成。这就把CSS的
/
转换为
,这是错误的。对我来说效果不错!谢谢,是这样吗@苏拉约
.tablecont tr:nth-child(2) td:nth-child(4) {background-color: yellow; }
.tablecont tr:nth-child(3) td:nth-child(4) {background-color: yellow; }
//Author: Oleksandr Knyga
function xPathToCss(xpath) {
return xpath
.replace(/\[(\d+?)\]/g, function(s,m1){ return '['+(m1-1)+']'; })
.replace(/\/{2}/g, '')
.replace(/\/+/g, ' > ')
.replace(/@/g, '')
.replace(/\[(\d+)\]/g, ':eq($1)')
.replace(/^\s+/, '');
}