xml_soccer 0.0.1.pre1 → 0.0.1.pre2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  # XmlSoccer
3
3
 
4
- This is a Ruby wrapper for the excellent soccer data Api that can be found at www.xmlsoccer.com
4
+ This is a Ruby wrapper for the excellent soccer data API that can be found at www.xmlsoccer.com
5
5
 
6
6
  This particular gem is a rewrite/refactoring of the xmlsoccer gem (https://github.com/kavinderd/xmlsoccer)
7
7
 
@@ -13,7 +13,7 @@ This gem requires Ruby 2.0 or greater, due to the use of keyword arguments in me
13
13
 
14
14
  Add this line to your application's Gemfile:
15
15
 
16
- gem 'xml_soccer'
16
+ gem "xml_soccer"
17
17
 
18
18
  And then execute:
19
19
 
@@ -21,7 +21,7 @@ And then execute:
21
21
 
22
22
  Or install it yourself as:
23
23
 
24
- $ gem install xml_soccer
24
+ $ gem install xml_soccer --pre
25
25
 
26
26
  ## Usage
27
27
 
@@ -31,23 +31,29 @@ I would recommend everyone interested in using this gem to first read the docume
31
31
 
32
32
  Additionally, the author of the xmlsoccer.com API has put a rate limit on all requests: http://xmlsoccer.wikia.com/wiki/Time_interval_limits
33
33
 
34
- This gem checks when the last request was made, and currently requires you to wait between calls. I will be making a more robust request
35
- time check that will be more in line with the xmlsoccer.com limitations.
34
+ Methods will return an Array of the results (as Hashes) from the API call. If an error occurs, methods will return nil, and print the
35
+ response from the API call to the console.
36
36
 
37
37
  You must have an xmlsoccer.com API Key and know which API type to use. Currently there are two types: XmlSoccer::DEMO and XmlSoccer::FULL.
38
38
  Demo is the default if you do not explicitly provide a type.
39
39
 
40
- Example Use:
40
+ Example Usage:
41
41
 
42
42
  xmlsoccer.com API GetAllLeagues
43
43
 
44
- xmlsoccer = XmlSoccer.new(api_key: 'Api_key', api_type:'Api_Type')
44
+ ```
45
+ xmlsoccer = XmlSoccer.new(api_key: 'Api_key', api_type:'Api_Type')
45
46
 
46
- leagues = xmlsoccer.leagues
47
+ leagues = xmlsoccer.leagues
47
48
 
48
- leagues.each do |league|
49
- put league[:name]
50
- end
49
+ if leagues
50
+ leagues.each do |league|
51
+ puts league[:name]
52
+ end
53
+ else
54
+ puts "An Error Occured!"
55
+ end
56
+ ```
51
57
 
52
58
  The following methods are currently implemented:
53
59
 
data/lib/xml_soccer.rb CHANGED
@@ -7,11 +7,9 @@ class XmlSoccer
7
7
  FULL = "Full"
8
8
  DEMO_URL = "http://www.xmlsoccer.com/FootballDataDemo.asmx?WSDL"
9
9
  FULL_URL = "http://www.xmlsoccer.com/FootballData.asmx?WSDL"
10
- WAIT = 'Wait 5 minutes between calls'
11
10
 
12
11
  private
13
12
  attr_reader :api_key, :client
14
- attr_accessor :last_call
15
13
 
16
14
  public
17
15
  def initialize(options={})
@@ -23,156 +21,103 @@ class XmlSoccer
23
21
  end
24
22
 
25
23
  @client = Savon.client(wsdl: base_url)
26
- self.last_call = 1.day.ago
27
24
  end
28
25
 
29
26
  def leagues
30
- if last_call > 60.minutes.ago
31
- return WAIT
32
- else
33
- response = client.call(:get_all_leagues, message:{"ApiKey" => api_key})
34
- self.last_call = Time.now
35
- return response.hash[:envelope][:body][:get_all_leagues_response][:get_all_leagues_result][:xmlsoccer_com][:league]
36
- end
27
+ call_api(method: "get_all_leagues", message: {"ApiKey" => api_key}, key: :league)
37
28
  end
38
29
 
39
30
  def teams
40
- if last_call > 60.minutes.ago
41
- return WAIT
42
- else
43
- response = client.call(:get_all_teams, message:{"ApiKey" => api_key})
44
- self.last_call = Time.now
45
- return response.hash[:envelope][:body][:get_all_teams_response][:get_all_teams_result][:xmlsoccer_com][:team]
46
- end
31
+ call_api(method: "get_all_teams", message: {"ApiKey" => api_key}, key: :team)
47
32
  end
48
33
 
49
34
  def teams_in_league_by_season(league: nil, season: nil)
50
- if last_call > 5.minutes.ago
51
- return WAIT
52
- else
53
- response = client.call(:get_all_teams_by_league_and_season, message: {"ApiKey" => api_key, "league" => league, "seasonDateString" => season})
54
- self.last_call = Time.now
55
- return response.hash[:envelope][:body][:get_all_teams_by_league_and_season_response][:get_all_teams_by_league_and_season_result][:xmlsoccer_com][:team]
56
- end
35
+ call_api(method: "get_all_teams_by_league_and_season",
36
+ message: {"ApiKey" => api_key, "league" => league, "seasonDateString" => season},
37
+ key: :team)
57
38
  end
58
39
 
59
40
  def fixtures_by_date(start_date: nil, end_date: nil)
60
- if last_call > 5.minutes.ago
61
- return WAIT
62
- else
63
- response = client.call(:get_fixtures_by_date_interval,
64
- message: {"ApiKey" => api_key,
65
- "startDateString" => start_date.strftime("%Y-%m-%d"),
66
- "endDateString" => end_date.strftime("%Y-%m-%d")})
67
- self.last_call = Time.now
68
- return response.hash[:envelope][:body][:get_fixtures_by_date_interval_response][:get_fixtures_by_date_interval_result][:xmlsoccer_com][:match]
69
- end
41
+ call_api(method: "get_fixtures_by_date_interval",
42
+ message: {"ApiKey" => api_key,
43
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
44
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
45
+ key: :match)
70
46
  end
71
47
 
72
48
  def fixtures_by_date_and_league(league: nil, start_date: nil, end_date: nil)
73
- if last_call > 5.minutes.ago
74
- return WAIT
75
- else
76
- response = client.call(:get_fixtures_by_date_interval_and_league,
77
- message: {"ApiKey" => api_key,
78
- "league" => league,
79
- "startDateString" => start_date.strftime("%Y-%m-%d"),
80
- "endDateString" => end_date.strftime("%Y-%m-%d")})
81
- self.last_call = Time.now
82
- return response.hash[:envelope][:body][:get_fixtures_by_date_interval_and_league_response][:get_fixtures_by_date_interval_and_league_result][:xmlsoccer_com][:match]
83
- end
49
+ call_api(method: "get_fixtures_by_date_interval_and_league",
50
+ message: {"ApiKey" => api_key,
51
+ "league" => league,
52
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
53
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
54
+ key: :match)
84
55
  end
85
56
 
86
57
  def fixtures_by_date_and_team(team: nil, start_date: nil, end_date: nil)
87
- if last_call > 5.minutes.ago
88
- return WAIT
89
- else
90
- response = client.call(:get_fixtures_by_date_interval_and_team,
91
- message: {"ApiKey" => api_key,
92
- "teamId" => team,
93
- "startDateString" => start_date.strftime("%Y-%m-%d"),
94
- "endDateString" => end_date.strftime("%Y-%m-%d")})
95
- self.last_call = Time.now
96
- return response.hash[:envelope][:body][:get_fixtures_by_date_interval_and_team_response][:get_fixtures_by_date_interval_and_team_result][:xmlsoccer_com][:match]
97
- end
58
+ call_api(method: "get_fixtures_by_date_interval_and_team",
59
+ message: {"ApiKey" => api_key,
60
+ "teamId" => team,
61
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
62
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
63
+ key: :match)
98
64
  end
99
65
 
100
66
  def historic_match_by_fixture(fixture_id: nil)
101
- if last_call > 5.minutes.ago
102
- return WAIT
103
- else
104
- response = client.call(:get_historic_matches_by_fixture_match_id,
105
- message: {"ApiKey" => api_key,
106
- "Id" => fixture_id})
107
- self.last_call = Time.now
108
- return response.hash[:envelope][:body][:get_historic_matches_by_fixture_match_id_response][:get_historic_matches_by_fixture_match_id_result][:xmlsoccer_com][:match]
109
- end
67
+ call_api(method: "get_historic_matches_by_fixture_match_id",
68
+ message: {"ApiKey" => api_key, "Id" => fixture_id},
69
+ key: :match)
110
70
  end
111
71
 
112
72
  def historic_match(match_id: nil)
113
- if last_call > 5.minutes.ago
114
- return WAIT
115
- else
116
- response = client.call(:get_historic_matches_by_id,
117
- message: {"ApiKey" => api_key,
118
- "Id" => match_id})
119
- self.last_call = Time.now
120
- return response.hash[:envelope][:body][:get_historic_matches_by_id_response][:get_historic_matches_by_id_result][:xmlsoccer_com][:match]
121
- end
73
+ call_api(method: "get_historic_matches_by_id",
74
+ message: {"ApiKey" => api_key, "Id" => match_id},
75
+ key: :match)
122
76
  end
123
77
 
124
78
  def historic_matches_by_league_and_date(league: nil, start_date: nil, end_date: nil)
125
- if last_call > 5.minutes.ago
126
- return WAIT
127
- else
128
- response = client.call(:get_historic_matches_by_league_and_date_interval,
129
- message: {"ApiKey" => api_key,
130
- "league" => league,
131
- "startDateString" => start_date.strftime("%Y-%m-%d"),
132
- "endDateString" => end_date.strftime("%Y-%m-%d")})
133
- self.last_call = Time.now
134
- return response.hash[:envelope][:body][:get_historic_matches_by_league_and_date_interval_response][:get_historic_matches_by_league_and_date_interval_result][:xmlsoccer_com][:match]
135
- end
79
+ call_api(method: "get_historic_matches_by_league_and_date_interval",
80
+ message: {"ApiKey" => api_key,
81
+ "league" => league,
82
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
83
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
84
+ key: :match)
136
85
  end
137
86
 
138
87
  def historic_matches_by_league_and_season(league: nil, season: nil)
139
- if last_call > 5.minutes.ago
140
- return WAIT
141
- else
142
- response = client.call(:get_historic_matches_by_league_and_season,
143
- message: {"ApiKey" => api_key,
144
- "league" => league, "seasonDateString" => season})
145
- self.last_call = Time.now
146
- return response.hash[:envelope][:body][:get_historic_matches_by_league_and_season_response][:get_historic_matches_by_league_and_season_result][:xmlsoccer_com][:match]
147
- end
88
+ call_api(method: "get_historic_matches_by_league_and_season",
89
+ message: {"ApiKey" => api_key, "league" => league, "seasonDateString" => season},
90
+ key: :match)
148
91
  end
149
92
 
150
93
  def historic_matches_by_team_and_date(team: nil, start_date: nil, end_date: nil)
151
- if last_call > 5.minutes.ago
152
- return WAIT
153
- else
154
- response = client.call(:get_historic_matches_by_team_and_date_interval,
155
- message: {"ApiKey" => api_key,
156
- "teamId" => team,
157
- "startDateString" => start_date.strftime("%Y-%m-%d"),
158
- "endDateString" => end_date.strftime("%Y-%m-%d")})
159
- self.last_call = Time.now
160
- return response.hash[:envelope][:body][:get_historic_matches_by_team_and_date_interval_response][:get_historic_matches_by_team_and_date_interval_result][:xmlsoccer_com][:match]
161
- end
94
+ call_api(method: "get_historic_matches_by_team_and_date_interval",
95
+ message: {"ApiKey" => api_key,
96
+ "teamId" => team,
97
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
98
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
99
+ key: :match)
162
100
  end
163
101
 
164
102
  def historic_matches_by_teams_and_date(team_1: nil, team_2: nil, start_date: nil, end_date: nil)
165
- if last_call > 5.minutes.ago
166
- return WAIT
103
+ call_api(method: "get_historic_matches_by_teams_and_date_interval",
104
+ message: {"ApiKey" => api_key,
105
+ "team1Id" => team_1,
106
+ "team2Id" => team_2,
107
+ "startDateString" => start_date.strftime("%Y-%m-%d"),
108
+ "endDateString" => end_date.strftime("%Y-%m-%d")},
109
+ key: :match)
110
+ end
111
+
112
+ private
113
+ def call_api(method: nil, message: nil, key: nil)
114
+ response = client.call(method.to_sym, message: message)
115
+ hash_response = response.body["#{method}_response".to_sym]["#{method}_result".to_sym][:xmlsoccer_com]
116
+
117
+ if hash_response.is_a?(Hash) && hash_response.has_key?(key)
118
+ hash_response[key].is_a?(Array) ? hash_response[key] : [hash_response[key]]
167
119
  else
168
- response = client.call(:get_historic_matches_by_teams_and_date_interval,
169
- message: {"ApiKey" => api_key,
170
- "team1Id" => team_1,
171
- "team2Id" => team_2,
172
- "startDateString" => start_date.strftime("%Y-%m-%d"),
173
- "endDateString" => end_date.strftime("%Y-%m-%d")})
174
- self.last_call = Time.now
175
- return response.hash[:envelope][:body][:get_historic_matches_by_teams_and_date_interval_response][:get_historic_matches_by_teams_and_date_interval_result][:xmlsoccer_com][:match]
120
+ puts hash_response
176
121
  end
177
122
  end
178
123
 
@@ -1,29 +1,29 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Envelope>
3
- <Body>
4
- <GetFixturesByDateIntervalAndTeamResponse>
5
- <GetFixturesByDateIntervalAndTeamResult>
6
- <XMLSOCCER.COM>
7
- <Match>
8
- <Id>324725</Id>
9
- <Date>2014-01-04T07:00:00-08:00</Date>
10
- <League>Scottish Premier League</League>
11
- <Round>21</Round>
12
- <HomeTeam>Ross County</HomeTeam>
13
- <HomeTeam_Id>360</HomeTeam_Id>
14
- <HomeGoals>1</HomeGoals>
15
- <AwayTeam>St Johnstone</AwayTeam>
16
- <AwayTeam_Id>46</AwayTeam_Id>
17
- <AwayGoals>0</AwayGoals>
18
- <Time>Finished</Time>
19
- <Location>Victoria Park</Location>
20
- <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
21
- <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
22
- <HomeTeamRedCardDetails />
23
- <AwayTeamRedCardDetails />
24
- </Match>
25
- </XMLSOCCER.COM>
26
- </GetFixturesByDateIntervalAndTeamResult>
27
- </GetFixturesByDateIntervalAndTeamResponse>
28
- </Body>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetFixturesByDateIntervalAndTeamResponse>
5
+ <GetFixturesByDateIntervalAndTeamResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>324725</Id>
9
+ <Date>2014-01-04T07:00:00-08:00</Date>
10
+ <League>Scottish Premier League</League>
11
+ <Round>21</Round>
12
+ <HomeTeam>Ross County</HomeTeam>
13
+ <HomeTeam_Id>360</HomeTeam_Id>
14
+ <HomeGoals>1</HomeGoals>
15
+ <AwayTeam>St Johnstone</AwayTeam>
16
+ <AwayTeam_Id>46</AwayTeam_Id>
17
+ <AwayGoals>0</AwayGoals>
18
+ <Time>Finished</Time>
19
+ <Location>Victoria Park</Location>
20
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
21
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
22
+ <HomeTeamRedCardDetails />
23
+ <AwayTeamRedCardDetails />
24
+ </Match>
25
+ </XMLSOCCER.COM>
26
+ </GetFixturesByDateIntervalAndTeamResult>
27
+ </GetFixturesByDateIntervalAndTeamResponse>
28
+ </Body>
29
29
  </Envelope>
@@ -1,57 +1,57 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Envelope>
3
- <Body>
4
- <GetHistoricMatchesByFixtureMatchIdResponse>
5
- <GetHistoricMatchesByFixtureMatchIdResult>
6
- <XMLSOCCER.COM>
7
- <Match>
8
- <Id>65805</Id>
9
- <FixtureMatch_Id>324725</FixtureMatch_Id>
10
- <Date>2014-01-04T07:00:00-08:00</Date>
11
- <Round>21</Round>
12
- <Spectators>3212</Spectators>
13
- <League>Scottish Premier League</League>
14
- <HomeTeam>Ross County</HomeTeam>
15
- <HomeTeam_Id>360</HomeTeam_Id>
16
- <HomeCorners>5</HomeCorners>
17
- <HomeGoals>1</HomeGoals>
18
- <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
- <HomeShots>10</HomeShots>
20
- <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
- <HomeFouls>13</HomeFouls>
22
- <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
- <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
- <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
- <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
- <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
- <HomeYellowCards>1</HomeYellowCards>
28
- <HomeRedCards>0</HomeRedCards>
29
- <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
- <AwayTeam>St Johnstone</AwayTeam>
31
- <AwayTeam_Id>46</AwayTeam_Id>
32
- <AwayCorners>0</AwayCorners>
33
- <AwayGoals>0</AwayGoals>
34
- <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
- <AwayShots>9</AwayShots>
36
- <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
- <AwayFouls>14</AwayFouls>
38
- <AwayGoalDetails />
39
- <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
- <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
- <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
- <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
- <AwayYellowCards>1</AwayYellowCards>
44
- <AwayRedCards>0</AwayRedCards>
45
- <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
- <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
- <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
- <HomeTeamRedCardDetails />
49
- <AwayTeamRedCardDetails />
50
- <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
- <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
- </Match>
53
- </XMLSOCCER.COM>
54
- </GetHistoricMatchesByFixtureMatchIdResult>
55
- </GetHistoricMatchesByFixtureMatchIdResponse>
56
- </Body>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetHistoricMatchesByFixtureMatchIdResponse>
5
+ <GetHistoricMatchesByFixtureMatchIdResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>65805</Id>
9
+ <FixtureMatch_Id>324725</FixtureMatch_Id>
10
+ <Date>2014-01-04T07:00:00-08:00</Date>
11
+ <Round>21</Round>
12
+ <Spectators>3212</Spectators>
13
+ <League>Scottish Premier League</League>
14
+ <HomeTeam>Ross County</HomeTeam>
15
+ <HomeTeam_Id>360</HomeTeam_Id>
16
+ <HomeCorners>5</HomeCorners>
17
+ <HomeGoals>1</HomeGoals>
18
+ <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
+ <HomeShots>10</HomeShots>
20
+ <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
+ <HomeFouls>13</HomeFouls>
22
+ <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
+ <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
+ <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
+ <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
+ <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
+ <HomeYellowCards>1</HomeYellowCards>
28
+ <HomeRedCards>0</HomeRedCards>
29
+ <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
+ <AwayTeam>St Johnstone</AwayTeam>
31
+ <AwayTeam_Id>46</AwayTeam_Id>
32
+ <AwayCorners>0</AwayCorners>
33
+ <AwayGoals>0</AwayGoals>
34
+ <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
+ <AwayShots>9</AwayShots>
36
+ <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
+ <AwayFouls>14</AwayFouls>
38
+ <AwayGoalDetails />
39
+ <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
+ <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
+ <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
+ <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
+ <AwayYellowCards>1</AwayYellowCards>
44
+ <AwayRedCards>0</AwayRedCards>
45
+ <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
+ <HomeTeamRedCardDetails />
49
+ <AwayTeamRedCardDetails />
50
+ <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
+ <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
+ </Match>
53
+ </XMLSOCCER.COM>
54
+ </GetHistoricMatchesByFixtureMatchIdResult>
55
+ </GetHistoricMatchesByFixtureMatchIdResponse>
56
+ </Body>
57
57
  </Envelope>
@@ -1,57 +1,57 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Envelope>
3
- <Body>
4
- <GetHistoricMatchesByIdResponse>
5
- <GetHistoricMatchesByIdResult>
6
- <XMLSOCCER.COM>
7
- <Match>
8
- <Id>65805</Id>
9
- <FixtureMatch_Id>324725</FixtureMatch_Id>
10
- <Date>2014-01-04T07:00:00-08:00</Date>
11
- <Round>21</Round>
12
- <Spectators>3212</Spectators>
13
- <League>Scottish Premier League</League>
14
- <HomeTeam>Ross County</HomeTeam>
15
- <HomeTeam_Id>360</HomeTeam_Id>
16
- <HomeCorners>5</HomeCorners>
17
- <HomeGoals>1</HomeGoals>
18
- <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
- <HomeShots>10</HomeShots>
20
- <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
- <HomeFouls>13</HomeFouls>
22
- <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
- <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
- <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
- <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
- <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
- <HomeYellowCards>1</HomeYellowCards>
28
- <HomeRedCards>0</HomeRedCards>
29
- <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
- <AwayTeam>St Johnstone</AwayTeam>
31
- <AwayTeam_Id>46</AwayTeam_Id>
32
- <AwayCorners>0</AwayCorners>
33
- <AwayGoals>0</AwayGoals>
34
- <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
- <AwayShots>9</AwayShots>
36
- <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
- <AwayFouls>14</AwayFouls>
38
- <AwayGoalDetails />
39
- <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
- <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
- <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
- <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
- <AwayYellowCards>1</AwayYellowCards>
44
- <AwayRedCards>0</AwayRedCards>
45
- <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
- <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
- <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
- <HomeTeamRedCardDetails />
49
- <AwayTeamRedCardDetails />
50
- <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
- <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
- </Match>
53
- </XMLSOCCER.COM>
54
- </GetHistoricMatchesByIdResult>
55
- </GetHistoricMatchesByIdResponse>
56
- </Body>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Envelope>
3
+ <Body>
4
+ <GetHistoricMatchesByIdResponse>
5
+ <GetHistoricMatchesByIdResult>
6
+ <XMLSOCCER.COM>
7
+ <Match>
8
+ <Id>65805</Id>
9
+ <FixtureMatch_Id>324725</FixtureMatch_Id>
10
+ <Date>2014-01-04T07:00:00-08:00</Date>
11
+ <Round>21</Round>
12
+ <Spectators>3212</Spectators>
13
+ <League>Scottish Premier League</League>
14
+ <HomeTeam>Ross County</HomeTeam>
15
+ <HomeTeam_Id>360</HomeTeam_Id>
16
+ <HomeCorners>5</HomeCorners>
17
+ <HomeGoals>1</HomeGoals>
18
+ <HalfTimeHomeGoals>0</HalfTimeHomeGoals>
19
+ <HomeShots>10</HomeShots>
20
+ <HomeShotsOnTarget>2</HomeShotsOnTarget>
21
+ <HomeFouls>13</HomeFouls>
22
+ <HomeGoalDetails>88': Graham Carey;</HomeGoalDetails>
23
+ <HomeLineupGoalkeeper> Michael Fraser</HomeLineupGoalkeeper>
24
+ <HomeLineupDefense> Scott Boyd; Brian McLean; Ben Gordon; Evangelos Ikonomou;</HomeLineupDefense>
25
+ <HomeLineupMidfield> Stuart Kettlewell; Alex Cooper; Richard Brittain; Graham Carey;</HomeLineupMidfield>
26
+ <HomeLineupForward> Jordan Slew; Gary Glen;</HomeLineupForward>
27
+ <HomeYellowCards>1</HomeYellowCards>
28
+ <HomeRedCards>0</HomeRedCards>
29
+ <HomeTeamFormation>4-4-2</HomeTeamFormation>
30
+ <AwayTeam>St Johnstone</AwayTeam>
31
+ <AwayTeam_Id>46</AwayTeam_Id>
32
+ <AwayCorners>0</AwayCorners>
33
+ <AwayGoals>0</AwayGoals>
34
+ <HalfTimeAwayGoals>0</HalfTimeAwayGoals>
35
+ <AwayShots>9</AwayShots>
36
+ <AwayShotsOnTarget>3</AwayShotsOnTarget>
37
+ <AwayFouls>14</AwayFouls>
38
+ <AwayGoalDetails />
39
+ <AwayLineupGoalkeeper> Alan Mannus</AwayLineupGoalkeeper>
40
+ <AwayLineupDefense> Frazer Wright; Steven Anderson; Thomas Scobbie; David Mackay;</AwayLineupDefense>
41
+ <AwayLineupMidfield> David Wotherspoon; Murray Davidson; Chris Millar; Gary McDonald;</AwayLineupMidfield>
42
+ <AwayLineupForward> Nigel Hasselbaink; Steve May;</AwayLineupForward>
43
+ <AwayYellowCards>1</AwayYellowCards>
44
+ <AwayRedCards>0</AwayRedCards>
45
+ <AwayTeamFormation>4-4-2</AwayTeamFormation>
46
+ <HomeTeamYellowCardDetails>89': Scott Boyd;</HomeTeamYellowCardDetails>
47
+ <AwayTeamYellowCardDetails>61': David Mackay;</AwayTeamYellowCardDetails>
48
+ <HomeTeamRedCardDetails />
49
+ <AwayTeamRedCardDetails />
50
+ <HomeSubDetails>84': in Michael Tidser;84': out Jordan Slew;66': out Gary Glen;66': in Melvin de Leeuw;</HomeSubDetails>
51
+ <AwaySubDetails>90': in Rory Fallon;90': in Lee Croft;90': out Chris Millar;90': out David Wotherspoon;69': out Nigel Hasselbaink;69': in Michael O'Halloran;</AwaySubDetails>
52
+ </Match>
53
+ </XMLSOCCER.COM>
54
+ </GetHistoricMatchesByIdResult>
55
+ </GetHistoricMatchesByIdResponse>
56
+ </Body>
57
57
  </Envelope>