Gre*_*reg 0 ruby xpath mechanize html-parsing nokogiri
我可以用什么XPath查询来解决下面的问题.我实际上正在使用nokogiri(在红宝石中),所以理想情况下,答案将采用红宝石nokogiri形式,但除此之外我只能使用XPath.
我正在寻求解析下面的HTML(一个完整的html页面,但为了清晰起见,我只是复制/粘贴相关部分),最后基本上是以下内容:
Phone Number Plan ID
545454545 12345
3434343434 67890
Run Code Online (Sandbox Code Playgroud)
所以在Ruby/nokogiri的上下文中,这可能是一个哈希,例如:
% result = { "545454545" => "12345", "3434343434" => "67890" }
Run Code Online (Sandbox Code Playgroud)
.
.
.
<form method="post">
<div style='line-height:18px;background-color:#FFFFFF;border: 1px #dedede solid;padding:10px;'>
<table width='90%' border=0>
<tr>
<td width='30%'> Plan ID </td>
<td width='70%'> 12345 </td>
</tr>
<tr>
<td> Phone Number </td>
<td> 545454545 </td>
</tr>
.
.
.
</table>
</div>
<br>
.
.
.
<div style='line-height:18px;background-color:#FFFFFF;border: 1px #dedede solid;padding:10px;'>
<table width='90%' border=0>
<tr>
<td width='30%'> Plan ID </td>
<td width='70%'> 67890 </td>
</tr>
<tr>
<td> Phone Number </td>
<td> 3434343434 </td>
</tr>
.
.
.
</table>
</div>
<br>
Run Code Online (Sandbox Code Playgroud)
怎么样:
xpath = '//td[contains(text(),"Phone Number") or contains(text(),"Plan ID")]/following-sibling::td'
Hash[*doc.xpath(xpath).map{|x| x.text.strip}.reverse]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |