Я довольно новичок в Ruby и мире программирования, поэтому, пожалуйста, несите меня.Nokogiri XML Builder создает неожиданный вывод при очистке HTML
Моя цель - очистить таблицу, а затем сохранить данные в файле XML. Простой скрипт, который я написал, успешно выполняет обе вещи. Проблема, с которой я сталкиваюсь, - это способ сохранения XML. Он не соответствует XML, который я привык видеть.
Я порылся с помощью нескольких примеров, руководств и форумов, но еще не пришел к решению.
Я открыт для любых предложений по лучшему способу получения данных из таблицы, особенно, поскольку первые три столбца - это все, что мне действительно нужно. ПОМОГИТЕ!!!
Вот мой сценарий:
require 'nokogiri'
require 'open-uri'
url = "http://www.covers.com/pageLoader/pageLoader.aspx?page=
/data/nba/team/pastresults/2010-2011/team404085.html"
doc = Nokogiri::HTML(open(url))
builder = Nokogiri::XML::Builder.new do |xml|
xml.root {
xml.items {
doc.css('.data').each do |o|
xml.item_content = o
end
}
}
end
File.open('ATL.xml','w'){|f| f.write builder.to_xml}
puts "Scrape Completed."
ли он сохраняется в файл .xml или распечатаны на экране в Ruby, XML, выглядит следующим образом:
<?xml version="1.0"?>
<root>
<items>
<item_content=><table cellpadding="2" cellspacing="1" class="data">
<tr class="datahead">
<td width="11%">Date</td>
<td width="21%">Vs</td>
<td width="18%">Score</td>
<td width="27%">Type</td>
<td width="13%">ATL Line</td>
<td width="10%">O/U</td>
</tr>
<tr class="datarow">
<td>
01/18/11</td>
<td>
@ <a href="/pageLoader/pageLoader.aspx?page=/data/nba/team/
team404171.html">Miami</a>
</td>
<td>
W <a href="/pageLoader/pageLoader.aspx?page=/data/nba/
results/2010-2011/boxscore795345.html">
93-89</a> (OT)</td>
<td>
Regular Season</td>
<td>
W 5.5</td>
<td>
U 194</td>
</tr>
Приведенный выше код просто фрагмент, поскольку есть несколько строк. (44 Итого)
Каков наилучший способ сделать это?
Спасибо, Phrogz за вашу помощь. Проблема, похоже, была в части кода для создания кода, так как мне нужен только текст из html. Еще раз спасибо! – darren