xml_soccer 0.0.1.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +19 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +76 -0
- data/Rakefile +6 -0
- data/lib/xml_soccer/version.rb +3 -0
- data/lib/xml_soccer.rb +179 -0
- data/spec/fixtures/get_all_leagues.xml +32 -0
- data/spec/fixtures/get_all_teams.xml +27 -0
- data/spec/fixtures/get_all_teams_by_league_and_season.xml +27 -0
- data/spec/fixtures/get_fixtures_by_date_interval.xml +59 -0
- data/spec/fixtures/get_fixtures_by_date_interval_and_league.xml +47 -0
- data/spec/fixtures/get_fixtures_by_date_interval_and_team.xml +29 -0
- data/spec/fixtures/get_historic_matches_by_fixture_match_id.xml +57 -0
- data/spec/fixtures/get_historic_matches_by_id.xml +57 -0
- data/spec/fixtures/get_historic_matches_by_league_and_date_interval.xml +103 -0
- data/spec/fixtures/get_historic_matches_by_league_and_season.xml +103 -0
- data/spec/fixtures/get_historic_matches_by_team_and_date_interval.xml +57 -0
- data/spec/fixtures/get_historic_matches_by_teams_and_date_interval.xml +57 -0
- data/spec/fixtures/hashed_responses.rb +144 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/xml_soccer_spec.rb +238 -0
- data/xml_soccer.gemspec +27 -0
- metadata +181 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Kavinder Dhaliwal
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
|
2
|
+
# XmlSoccer
|
3
|
+
|
4
|
+
This is a Ruby wrapper for the excellent soccer data Api that can be found at www.xmlsoccer.com
|
5
|
+
|
6
|
+
This particular gem is a rewrite/refactoring of the xmlsoccer gem (https://github.com/kavinderd/xmlsoccer)
|
7
|
+
|
8
|
+
Please note that this gem is currently in pre-release, and is subject to change.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
This gem requires Ruby 2.0 or greater, due to the use of keyword arguments in methods.
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
gem 'xml_soccer'
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
$ bundle
|
21
|
+
|
22
|
+
Or install it yourself as:
|
23
|
+
|
24
|
+
$ gem install xml_soccer
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
The xmlsoccer.com API is a SOAP service, so this gem uses the 'Savon' gem to interface.
|
29
|
+
|
30
|
+
I would recommend everyone interested in using this gem to first read the documentation for the xmlsoccer.com API at http://xmlsoccer.wikia.com/wiki/Main_Page
|
31
|
+
|
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
|
+
|
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.
|
36
|
+
|
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
|
+
Demo is the default if you do not explicitly provide a type.
|
39
|
+
|
40
|
+
Example Use:
|
41
|
+
|
42
|
+
xmlsoccer.com API GetAllLeagues
|
43
|
+
|
44
|
+
xmlsoccer = XmlSoccer.new(api_key: 'Api_key', api_type:'Api_Type')
|
45
|
+
|
46
|
+
leagues = xmlsoccer.leagues
|
47
|
+
|
48
|
+
leagues.each do |league|
|
49
|
+
put league[:name]
|
50
|
+
end
|
51
|
+
|
52
|
+
The following methods are currently implemented:
|
53
|
+
|
54
|
+
xml_soccer method | xmlsoccer.com API call
|
55
|
+
--- | ---
|
56
|
+
`leagues` | GetAllLeagues
|
57
|
+
`teams` | GetAllTeams
|
58
|
+
`teams_in_league_by_season(league: 'league', season: 'season')` | GetAllTeamsByLeagueAndSeason
|
59
|
+
`fixtures_by_date(start_date: Date, end_date: Date)` | GetFixturesByDateInterval
|
60
|
+
`fixtures_by_date_and_league(league: 'league', start_date: Date, end_date: Date)` | GetFixturesByDateIntervalAndLeague
|
61
|
+
`fixtures_by_date_and_team(team: 'team', start_date: Date, end_date: Date)` | GetFixturesByDateIntervalAndTeam
|
62
|
+
`historic_match_by_fixture(fixture_id: 'fixture_id')` | GetHistoricMatchesByFixtureMatchID
|
63
|
+
`historic_match(match_id: 'match_id')` | GetHistoricMatchesByID
|
64
|
+
`historic_matches_by_league_and_date(league: 'league', start_date: Date, end_date: Date)` | GetHistoricMatchesByLeagueAndDateInterval
|
65
|
+
`historic_matches_by_league_and_season(league: 'league', season: 'season')` | GetHistoricMatchesByLeagueAndSeason
|
66
|
+
`historic_matches_by_team_and_date(team: 'team', start_date: Date, end_date: Date)` | GetHistoricMatchesByTeamAndDateInterval
|
67
|
+
`historic_matches_by_teams_and_date(team_1: 'team_1', team_2: 'team_2', start_date: Date, end_date: Date)` | GetHistoricMatchesByTeamsAndDateInterval
|
68
|
+
|
69
|
+
|
70
|
+
## Contributing
|
71
|
+
|
72
|
+
1. Fork it ( https://github.com/nosenseworrying/xmlsoccer/fork )
|
73
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
74
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
75
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
76
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/lib/xml_soccer.rb
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
#require "xml_soccer/version"
|
2
|
+
require 'savon'
|
3
|
+
require 'active_support/time'
|
4
|
+
|
5
|
+
class XmlSoccer
|
6
|
+
DEMO = "Demo"
|
7
|
+
FULL = "Full"
|
8
|
+
DEMO_URL = "http://www.xmlsoccer.com/FootballDataDemo.asmx?WSDL"
|
9
|
+
FULL_URL = "http://www.xmlsoccer.com/FootballData.asmx?WSDL"
|
10
|
+
WAIT = 'Wait 5 minutes between calls'
|
11
|
+
|
12
|
+
private
|
13
|
+
attr_reader :api_key, :client
|
14
|
+
attr_accessor :last_call
|
15
|
+
|
16
|
+
public
|
17
|
+
def initialize(options={})
|
18
|
+
@api_key = options[:api_key]
|
19
|
+
|
20
|
+
case options.fetch(:api_type, XmlSoccer::DEMO)
|
21
|
+
when DEMO then base_url = DEMO_URL
|
22
|
+
when FULL then base_url = FULL_URL
|
23
|
+
end
|
24
|
+
|
25
|
+
@client = Savon.client(wsdl: base_url)
|
26
|
+
self.last_call = 1.day.ago
|
27
|
+
end
|
28
|
+
|
29
|
+
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
|
37
|
+
end
|
38
|
+
|
39
|
+
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
|
47
|
+
end
|
48
|
+
|
49
|
+
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
|
57
|
+
end
|
58
|
+
|
59
|
+
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
|
70
|
+
end
|
71
|
+
|
72
|
+
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
|
84
|
+
end
|
85
|
+
|
86
|
+
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
|
98
|
+
end
|
99
|
+
|
100
|
+
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
|
110
|
+
end
|
111
|
+
|
112
|
+
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
|
122
|
+
end
|
123
|
+
|
124
|
+
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
|
136
|
+
end
|
137
|
+
|
138
|
+
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
|
148
|
+
end
|
149
|
+
|
150
|
+
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
|
162
|
+
end
|
163
|
+
|
164
|
+
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
|
167
|
+
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]
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Envelope>
|
3
|
+
<Body>
|
4
|
+
<GetAllLeaguesResponse>
|
5
|
+
<GetAllLeaguesResult>
|
6
|
+
<XMLSOCCER.COM>
|
7
|
+
<League>
|
8
|
+
<Id>1</Id>
|
9
|
+
<Name>English Premier League</Name>
|
10
|
+
<Country>England</Country>
|
11
|
+
<Historical_Data>Yes</Historical_Data>
|
12
|
+
<Fixtures>Yes</Fixtures>
|
13
|
+
<Livescore>Yes</Livescore>
|
14
|
+
<NumberOfMatches>2557</NumberOfMatches>
|
15
|
+
<LatestMatch>2013-03-02T16:00:00+01:00</LatestMatch>
|
16
|
+
</League>
|
17
|
+
<League>
|
18
|
+
<Id>2</Id>
|
19
|
+
<Name>English League Championship</Name>
|
20
|
+
<Country>England</Country>
|
21
|
+
<Historical_Data>Yes</Historical_Data>
|
22
|
+
<Fixtures>Yes</Fixtures>
|
23
|
+
<Livescore>Yes</Livescore>
|
24
|
+
<NumberOfMatches>3267</NumberOfMatches>
|
25
|
+
<LatestMatch>2013-03-02T16:00:00+01:00</LatestMatch>
|
26
|
+
</League>
|
27
|
+
<AccountInformation>Data requested at 02-03-2013 21:02:09 from XX.XX.XX.XX, Username: Espectro. Your current supscription runs out on XX-XX-XXXX 11:01:25.</AccountInformation>
|
28
|
+
</XMLSOCCER.COM>
|
29
|
+
</GetAllLeaguesResult>
|
30
|
+
</GetAllLeaguesResponse>
|
31
|
+
</Body>
|
32
|
+
</Envelope>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Envelope>
|
3
|
+
<Body>
|
4
|
+
<GetAllTeamsResponse>
|
5
|
+
<GetAllTeamsResult>
|
6
|
+
<XMLSOCCER.COM>
|
7
|
+
<Team>
|
8
|
+
<Team_Id>4</Team_Id>
|
9
|
+
<Name>Fulham</Name>
|
10
|
+
<Country>England</Country>
|
11
|
+
<Stadium>Craven Cottage</Stadium>
|
12
|
+
<HomePageURL>http://www.fulhamfc.com/</HomePageURL>
|
13
|
+
<WIKILink>http://en.wikipedia.org/wiki/Fulham_F.C.</WIKILink>
|
14
|
+
</Team>
|
15
|
+
<Team>
|
16
|
+
<Team_Id>5</Team_Id>
|
17
|
+
<Name>Aston Villa</Name>
|
18
|
+
<Country>England</Country>
|
19
|
+
<Stadium>Villa Park</Stadium>
|
20
|
+
<HomePageURL>http://www.avfc.co.uk/9laI7Jw</HomePageURL>
|
21
|
+
<WIKILink>http://en.wikipedia.org/wiki/Aston_Villa_F.C.</WIKILink>
|
22
|
+
</Team>
|
23
|
+
</XMLSOCCER.COM>
|
24
|
+
</GetAllTeamsResult>
|
25
|
+
</GetAllTeamsResponse>
|
26
|
+
</Body>
|
27
|
+
</Envelope>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Envelope>
|
3
|
+
<Body>
|
4
|
+
<GetAllTeamsByLeagueAndSeasonResponse>
|
5
|
+
<GetAllTeamsByLeagueAndSeasonResult>
|
6
|
+
<XMLSOCCER.COM>
|
7
|
+
<Team>
|
8
|
+
<Team_Id>4</Team_Id>
|
9
|
+
<Name>Fulham</Name>
|
10
|
+
<Country>England</Country>
|
11
|
+
<Stadium>Craven Cottage</Stadium>
|
12
|
+
<HomePageURL>http://www.fulhamfc.com/</HomePageURL>
|
13
|
+
<WIKILink>http://en.wikipedia.org/wiki/Fulham_F.C.</WIKILink>
|
14
|
+
</Team>
|
15
|
+
<Team>
|
16
|
+
<Team_Id>5</Team_Id>
|
17
|
+
<Name>Aston Villa</Name>
|
18
|
+
<Country>England</Country>
|
19
|
+
<Stadium>Villa Park</Stadium>
|
20
|
+
<HomePageURL>http://www.avfc.co.uk/9laI7Jw</HomePageURL>
|
21
|
+
<WIKILink>http://en.wikipedia.org/wiki/Aston_Villa_F.C.</WIKILink>
|
22
|
+
</Team>
|
23
|
+
</XMLSOCCER.COM>
|
24
|
+
</GetAllTeamsByLeagueAndSeasonResult>
|
25
|
+
</GetAllTeamsByLeagueAndSeasonResponse>
|
26
|
+
</Body>
|
27
|
+
</Envelope>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Envelope>
|
3
|
+
<Body>
|
4
|
+
<GetFixturesByDateIntervalResponse>
|
5
|
+
<GetFixturesByDateIntervalResult>
|
6
|
+
<XMLSOCCER.COM>
|
7
|
+
<Match>
|
8
|
+
<Id>287180</Id>
|
9
|
+
<Date>2013-02-22T21:30:00+01:00</Date>
|
10
|
+
<League>La Liga</League>
|
11
|
+
<Round>25</Round>
|
12
|
+
<HomeTeam>Ath Bilbao</HomeTeam>
|
13
|
+
<HomeTeam_Id>143</HomeTeam_Id>
|
14
|
+
<HomeGoals>1</HomeGoals>
|
15
|
+
<AwayTeam>Sociedad</AwayTeam>
|
16
|
+
<AwayTeam_Id>140</AwayTeam_Id>
|
17
|
+
<AwayGoals>3</AwayGoals>
|
18
|
+
<Time>Finished</Time>
|
19
|
+
<Location>San Mam?s</Location>
|
20
|
+
<BetAtHome>2,20</BetAtHome>
|
21
|
+
<BetAtDraw>3,35</BetAtDraw>
|
22
|
+
<BetAtAway>3,15</BetAtAway>
|
23
|
+
<BetAtHomeLink>http://affiliates.bet-at-home.com/processing/clickthrgh.asp?btag=a_62598b_303</BetAtHomeLink>
|
24
|
+
<InterwettenHome>2,10</InterwettenHome>
|
25
|
+
<InterwettenDraw>3,30</InterwettenDraw>
|
26
|
+
<InterwettenAway>3,30</InterwettenAway>
|
27
|
+
<InterwettenLink>https://www.interwetten.com/en/sportsbook/e/9752883/</InterwettenLink>
|
28
|
+
<HomeTeamYellowCardDetails>84': Iker Muniain;45': Ander Iturraspe;38': Aymeric Laporte;</HomeTeamYellowCardDetails>
|
29
|
+
<AwayTeamYellowCardDetails>49': Asier Illarramendi;</AwayTeamYellowCardDetails>
|
30
|
+
<HomeTeamRedCardDetails/>
|
31
|
+
<AwayTeamRedCardDetails/>
|
32
|
+
</Match>
|
33
|
+
<Match>
|
34
|
+
<Id>286593</Id>
|
35
|
+
<Date>2013-02-22T21:00:00+01:00</Date>
|
36
|
+
<League>Serie B</League>
|
37
|
+
<Round>27</Round>
|
38
|
+
<HomeTeam>Spezia</HomeTeam>
|
39
|
+
<HomeTeam_Id>295</HomeTeam_Id>
|
40
|
+
<HomeGoals>0</HomeGoals>
|
41
|
+
<AwayTeam>Novara</AwayTeam>
|
42
|
+
<AwayTeam_Id>82</AwayTeam_Id>
|
43
|
+
<AwayGoals>6</AwayGoals>
|
44
|
+
<Time>Finished</Time>
|
45
|
+
<Location>Stadio Alberto Picco</Location>
|
46
|
+
<BetAtHome>2,10</BetAtHome>
|
47
|
+
<BetAtDraw>2,85</BetAtDraw>
|
48
|
+
<BetAtAway>3,50</BetAtAway>
|
49
|
+
<BetAtHomeLink>http://affiliates.bet-at-home.com/processing/clickthrgh.asp?btag=a_62598b_303</BetAtHomeLink>
|
50
|
+
<HomeTeamYellowCardDetails/>
|
51
|
+
<AwayTeamYellowCardDetails/>
|
52
|
+
<HomeTeamRedCardDetails/>
|
53
|
+
<AwayTeamRedCardDetails/>
|
54
|
+
</Match>
|
55
|
+
</XMLSOCCER.COM>
|
56
|
+
</GetFixturesByDateIntervalResult>
|
57
|
+
</GetFixturesByDateIntervalResponse>
|
58
|
+
</Body>
|
59
|
+
</Envelope>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Envelope>
|
3
|
+
<Body>
|
4
|
+
<GetFixturesByDateIntervalAndLeagueResponse>
|
5
|
+
<GetFixturesByDateIntervalAndLeagueResult>
|
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
|
+
<Match>
|
26
|
+
<Id>324726</Id>
|
27
|
+
<Date>2014-01-05T04:45:00-08:00</Date>
|
28
|
+
<League>Scottish Premier League</League>
|
29
|
+
<Round>21</Round>
|
30
|
+
<HomeTeam>St Mirren</HomeTeam>
|
31
|
+
<HomeTeam_Id>56</HomeTeam_Id>
|
32
|
+
<HomeGoals>0</HomeGoals>
|
33
|
+
<AwayTeam>Celtic</AwayTeam>
|
34
|
+
<AwayTeam_Id>54</AwayTeam_Id>
|
35
|
+
<AwayGoals>4</AwayGoals>
|
36
|
+
<Time>Finished</Time>
|
37
|
+
<Location>St. Mirren Park</Location>
|
38
|
+
<HomeTeamYellowCardDetails>78': Lee Mair;</HomeTeamYellowCardDetails>
|
39
|
+
<AwayTeamYellowCardDetails>90': Efe Ambrose;89': Emilio Izaguirre;33': Scott Brown;</AwayTeamYellowCardDetails>
|
40
|
+
<HomeTeamRedCardDetails />
|
41
|
+
<AwayTeamRedCardDetails />
|
42
|
+
</Match>
|
43
|
+
</XMLSOCCER.COM>
|
44
|
+
</GetFixturesByDateIntervalAndLeagueResult>
|
45
|
+
</GetFixturesByDateIntervalAndLeagueResponse>
|
46
|
+
</Body>
|
47
|
+
</Envelope>
|
@@ -0,0 +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>
|
29
|
+
</Envelope>
|
@@ -0,0 +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>
|
57
|
+
</Envelope>
|
@@ -0,0 +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>
|
57
|
+
</Envelope>
|