Kam*_*mil 5 css xpath css-selectors html-parsing jsoup
我的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(我需要获取值:1和3):
<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>
Run Code Online (Sandbox Code Playgroud)
nwe*_*hof 11
虽然表达式(//E)[2]不能用CSS选择器表示,但是类似的表达式E[2]可以使用:nth-of-type()伪类进行模拟:
html > body > div > table > tbody > tr:nth-of-type(2) > td:nth-of-type(4)
Run Code Online (Sandbox Code Playgroud)
对我有用.
//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+/, '');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17647 次 |
| 最近记录: |