這些文件是非常標準的,只要XML去..,你只需要確定每個文件所代表的。
我做了周圍紅襪v皇家遊戲咋一看,從9月14日(轉到紅襪!) 在year_2014/month_09/day_14/gid_2014_09_14_bosmlb_kcamlb_1/players.xml 我可以看到,奧爾蒂斯爲120074的ID。
如果我看着他的球員Id的擊球手,我可以看到他的那場比賽的數據。 (year_2014/month_09/day_14/gid_2014_09_14_bosmlb_kcamlb_1/batters/120074.xml)
它繼續。基本上,爲了將這些文件加載到數據庫中,您需要執行某些級別的處理才能使其具有意義。 這些ID在遊戲間似乎沒有改變,但我只是粗略一瞥。
至於加載數據,perl中的XML :: Simple可以很容易地接受一個XML並且吐出一個perl數據結構。除非你需要更重的東西,否則這應該會掩蓋你。
加載players.xml:
#!/bin/env perl
use strict; use warnings;
use Data::Dumper;
use XML::Simple;
my $players_xml = XMLin('players.xml');
print Dumper $xml;
給你的東西,如:
$VAR1 = {
'venue' => 'Kauffman Stadium',
'date' => 'September 14, 2014',
'team' => {
'Boston Red Sox' => {
'id' => 'BOS',
'player' => {
'605141' => {
'avg' => '.283',
'team_abbrev' => 'BOS',
'parent_team_id' => '111',
'hr' => '4',
'team_id' => '111',
'status' => 'A',
'last' => 'Betts',
'rl' => 'R',
'parent_team_abbrev' => 'BOS',
'first' => 'Mookie',
'rbi' => '12',
'game_position' => '2B',
'num' => '50',
'position' => '2B',
'current_position' => '2B',
'boxname' => 'Betts',
'bats' => 'R',
'bat_order' => '1'
},
...
它是那麼微不足道瀏覽這些散列和插入DB行,只要你喜歡。
爲了給出一個好的答案,您的XML示例是必要的。否則,這是一個基於意見的答案,這對於StackOverflow來說可能是不合適的。我建議將'perl'和'XML :: Twig'看作XML解析的很好選擇。 (如果你可以給出一個XML樣本和所需的輸出,我可以敲你一個例子)。 – Sobrique 2015-02-09 14:17:14