如何Xpath的转换为CSS(How to convert Xpath to CSS)

2019-08-18 10:14发布

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

我需要一个CSS在jsoup选择使用它。

我发现XPath和CSS之间的比较: 在这里 ,并在他们的例子(说Second <E> element anywhere on page ),我不能这样做。 Xpath的xpath=(//E)[2] CSS N\A

也许我无法找到我要找的。 有任何想法吗?

下面是我试图解析HTML(我需要得到的值: 13 ):

<div class=tablecont>
    <table width=100%>
        <tr>
            <td class=header align=center>Panel Color</td>
            <td class=header align=center>Locked</td>
            <td class=header align=center>Unqualified</td>
            <td class=header align=center>Qualified</td>
            <td class=header align=center>Finished</td>
            <td class=header align=center>TOTAL</td>
        </tr>
        <tr>
            <td align=center>
                <div class=packagecode>ONE</div>
                <div>
                <div class=packagecolor style=background-color:#FC0;></div>
                </div>
            </td>
            <td align=center>0</td>
            <td align=center>0</td>
            <td align=center>1</td>
            <td align=center>12</td>
            <td align=center class=rowhead>53</td>
        </tr>
        <tr>
            <td align=center>
                <div class=packagecode>two</div>
                <div>
                    <div class=packagecolor style=background-color:#C3F;></div>
                </div>
            </td>
            <td align=center>0</td>
            <td align=center>0</td>
            <td align=center>3</td>
            <td align=center>42</td>
            <td align=center class=rowhead>26</td>
        </tr>
    </table>
</div>

Answer 1:

虽然像的表达式(//E)[2]不能与CSS选择来表示,像一个表达式E[2]可使用进行仿真:nth-of-type()伪类:

html > body > div > table > tbody > tr:nth-of-type(2) > td:nth-of-type(4)


Answer 2:

作品对我好。

//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+/, '');
}


Answer 3:

您是否正在寻找这样的事情:

http://jsfiddle.net/YZu8D/

.tablecont tr:nth-child(2) td:nth-child(4) {background-color: yellow; }
.tablecont tr:nth-child(3) td:nth-child(4) {background-color: yellow; }


Answer 4:

每个人都应该学习如何编写CSS选择器,而是速战速决,尝试: cssify

例如,我把你的XPath和它吐了出来: html > body > div > table > tbody > tr:nth-of-type(2) > td:nth-of-type(4)

试试看。



文章来源: How to convert Xpath to CSS