我有以下文件:
<html>
<body>
<div>
<table>
<tr>
<td>390920000</td>
<td>A</td>
</tr>
<tr>
<td>390920000</td>
<td></td>
</tr>
<tr>
<td>3924100011</td>
<td>B</td>
</tr>
<tr>
<td>3924100011</td>
<td></td>
</tr>
<tr>
<td>3924100019</td>
<td></td>
</tr>
<tr>
<td>3924100019</td>
<td>C</td>
</tr>
</table>
</div>
</body>
</html>
我想要的是使用xpath选择/ html / body / div / table / tr / td [2],但是对于每个空元素,请选择前一个非空元素。因此,不要获取价值&#39; A&#39;&#39;&#39; B&#39;,&#39;&#39;&#39;&#39;&#39; &#39; C&#39;我想得到A&#39; A&#39; A&#39; B&#39; B&#39; B&#39; B&#39; B&#39; &#39; C&#39 ;.这可能吗?
不过,请注意,这是一个HTML而不是一个xml。我正在使用HtmlAgilityPack所以我创建普通的xpath表达式来选择html元素。答案 0 :(得分:0)
如果XPath 3正常,则以下内容应该有效:
//table/tr ! head((., reverse(preceding-sibling::*))[normalize-space(td[2]/text()) != ""])/td[2]