我正在使用Nokogiri来分析一些HTML.但是,我不知道如何获取节点内的原始html.例如,给定:
<tr class="tableX">
<td align="center">
<font size="2"><a href="javascript:open('9746')">9746</a></font>
</td>
<td align="center">
<font size="2">2012-06-26</font>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
当我使用这个xpath时:
doc = Nokogiri::HTML(html)
nodes = doc.search("//tr[@class='tablebX']")
nodes.each do |node|
node.text # or node.content
end
Run Code Online (Sandbox Code Playgroud)
结果来自node.text和node.content:
9746
2012-06-26
Run Code Online (Sandbox Code Playgroud)
我想在tr块内获取所有原始html .在这种情况下:
<td align="center">
<font size="2"><a href="javascript:open('9746')">9746</a></font>
</td>
<td align="center">
<font size="2">2012-06-26</font>
</td>
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
Dav*_*ton 21
使用node.to_s,或只是node:
nodes = doc.search("//tr[@class='tablebX']")
nodes.each do |node|
puts node.to_s
puts '-'*40
end
Run Code Online (Sandbox Code Playgroud)
使用额外的完整性检查HTML(你的,加倍,中间有tr一个不同的类)我得到:
<tr class="tableX">
<td align="center">
<font size="2"><a href="javascript:open('9746')">9746</a></font>
</td>
<td align="center"><font size="2">2012-06-26</font></td>
</tr>
----------------------------------------
<tr class="tableX">
<td align="center">
<font size="2"><a href="javascript:open('9746')">9746</a></font>
</td>
<td align="center"><font size="2">2012-06-26</font></td>
</tr>
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
你可以添加children.to_html.尝试在下面执行此操作:
doc = Nokogiri::HTML(html)
nodes = doc.search("//tr[@class='tablebX']")
nodes.each do |node|
node.children.to_html # or node.content
end
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助.
| 归档时间: |
|
| 查看次数: |
12672 次 |
| 最近记录: |