xml_soccer 0.0.1.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|