这些文件是非常标准的,只要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