次のように Nokogiri を使用してローカルの HTML ドキュメントを読んでいます。
f = File.open(local_xml)
@doc = Nokogiri::XML(f)
f.close
@doc
を使用して解析できる Nokogiri XML オブジェクトが含まれていますat_css
。
Nokogiri のXML::Nodeを使用して変更したいのですが、完全に行き詰まっています。この Nokogiri XML ドキュメントを取得し、ノード メソッドを使用して操作するにはどうすればよいですか?
例えば:
@doc.at_css('rates tr').add_next_sibling(element)
戻り値:
undefined method `add_next_sibling' for nil:NilClass (NoMethodError)
@doc.class
であるにも関わらずNokogiri::XML::Document
。
完全を期すために、編集しようとしているマークアップを次に示します。
<html>
<head>
<title>Exchange Rates</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<table class="rates">
<tr>
<td class="up"><div></div></td>
<td class="date">Saturday, Jan 12</td>
<td class="rate up">3.83</td>
</tr>
<tr>
<td class="up"><div></div></td>
<td class="date">Friday, Jan 11</td>
<td class="rate up">3.70</td>
</tr>
<tr>
<td class="down"><div></div></td>
<td class="date">Thursday, Jan 10</td>
<td class="rate down">3.68</td>
</tr>
<tr>
<td class="down"><div></div></td>
<td class="date">Wedensday, Jan 9</td>
<td class="rate down">3.70</td>
</tr>
<tr>
<td class="up"><div></div></td>
<td class="date">Tuesday, Jan 8</td>
<td class="rate up">3.66</td>
</tr>
</table>
</body>
</html>