【发布时间】:2016-04-12 10:15:12
【问题描述】:
我有一个非常长的 HTML 文件,其中包含许多不同的表格。我只想解析某些表,但不幸的是 <table> 标记在这里没有帮助。
我想要解析的表如下所示:
<tr>
<td> TEXT1 </td>
<td> <a class='unique identifier' ...> TEXT2 </a></td>
</tr>
我想要“TEXT1”和“TEXT2”。我知道如何获取“TEXT2”:它总是在 <a> 标签中,到目前为止我的解决方案是
//a[(@class="unique identifier")]
注意:有时“TEXT1”在<p> 标签中,有时不在。有时在它之后还有其他标签,如<b>s 或<br>s 或<em> 等。我认为我需要在我找到的每个<a> 之后获取以前的<td> 内容,但忽略介于两者之间的任何其他元素。
我怎样才能告诉 Nokogiri,对于我发现的每个“TEXT2”,也可以返回并获取之前的 <td>,以便我可以获取“TEXT1”?
【问题讨论】:
-
这是怎么复制的?
-
在那里你可能会找到获取tr元素的方法
-
这不是我的问题。你读过我问的吗?
-
是的。要获取这两个文本,您需要一种上树的方法(回到“a”的父级),这样当您到达 tr 时,您将拥有两个 td,因此您将能够访问这两个文本。这不是你想要的吗?
-
对不起。尽管存在同样的问题,但该问题的答案并不符合您的需求。
标签: ruby html-parsing nokogiri