Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Xpath转换为CSS_Css_Xpath_Css Selectors_Html Parsing_Jsoup - Fatal编程技术网

如何将Xpath转换为CSS

如何将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

我的xpath是:
/html/body/div/table/tbody/tr[2]/td[4]

我需要一个CSS来在jsoup选择器中使用它

我发现xpath和css之间有一个比较:,在他们的示例中(
第二个元素在页面上的任何地方
)说我做不到。Xpath
Xpath=(//E)[2]
CSS
N\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+/, '');
}