webForumDet fria alternativet

Hämta XML data

11 svar · 1 006 visningar · startad av asp

aspMedlem sedan aug. 2002733 inlägg
#1

Hej.

Skulle någon vänlig själ kunna visa ett enkelt exempel på hur man hämta XML-data från denna sida?

http://www.managerzone.com/xml/team_matchlist.php?sport_id=1&team_id=78700&match_status=1&limit=50

Saken är den att nu står det goals="2" istället för <goals>2</goals> som jag har arbetat med innan.

/ Marcus

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Hej!

set node = xmlDoc.documentElement.selectSingleNode("/ManagerZone_MatchList/Match[@id = 149612250]/Team[@field = 'away']")
if not node is nothing then
  response.write node.getAttribute("goals")
end if
aspMedlem sedan aug. 2002733 inlägg
#3

Tackar. Är lite nybörjare på detta område. Denna kod retunerar inget, inget felmeddelande alltså utan bara tomt.

<%
Response.ContentType = "text/plain"

set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load (Server.MapPath("http://www.managerzone.com/xml/team_matchlist.php?sport_id=1&team_id=78700&match_status=1&limit=50"))

set node = xmlDoc.documentElement.selectSingleNode("/ManagerZone_MatchList/Match[@id = 149612250]/Team[@field = 'away']")
if not node is nothing then
	response.write node.getAttribute("goals")
end if
%>

/ Marcus

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Du vill nog inte ha med Server.MapPath-delen.

Vid fel kan du använda följande:

xmlDoc.load(...)
if xmlDoc.parseError <> 0 then
  response.write xmlDoc.parseError.reason
end if
aspMedlem sedan aug. 2002733 inlägg
#5

Hej igen.

Vill inte vara krävande på något vis. Men tanken är att jag skall loop igenom alla matcher. Så om någon väldigt vänlig själ hade lust att hjälpa med göra en funktion som ser ut något såhär:

For i = 0 to node.all
      hemmalag = node.getAttribut("home")
      bortalag = node.getAttribut("away")
      hemmaid = node.getAttribut("teamid")
      'osv...

      'Spara enskild match i databasen. Klarar jag själv dock ;-)
Next
Peter SMedlem sedan dec. 20025 483 inlägg
#6
set nodes = obj.documentElement.selectNodes("Match")
for each node in nodes
  'home team
  set home = node.selectSingleNode("Team[@field = 'home']")
  homeGoals = home.getAttribute("goals")
  'away team
  set away = node.selectSingleNode("Team[@field = 'away']")
  awayGoals = away.getAttribute("goals")
  
  '...
next
aspMedlem sedan aug. 2002733 inlägg
#7

Tusen tack Peter.

Fungerade dock inte med förra XLM-kopplingen, dock med denna:

set xml = createObject("Msxml.DOMDocument")
xml.async = false
xml.setProperty "ServerHTTPRequest", true
xml.load("http://www.managerzone.com/xml/team_matchlist.php?sport_id=1&team_id=78700&match_status=1&limit=50")

/ Marcus

Peter SMedlem sedan dec. 20025 483 inlägg
#8

Bra att veta (y)

aspMedlem sedan aug. 2002733 inlägg
#9
set nodes = xml.documentElement.selectNodes("Match")
for each node in nodes

Finns det något sätt att loopa igenom backlänges istället. Så den börjar med den äldsta matchen, d.v.s. längst ner på sidan.

Peter SMedlem sedan dec. 20025 483 inlägg
#10
for i = nodes.length-1 to 0 step -1
  set home = nodes.item(i).selectSingleNode("Team[@field = 'home']")
  ...
aspMedlem sedan aug. 2002733 inlägg
#11

Tackar ännu en gång. Får se om det blir det slutgiltiga svaret denna gång... =)

halo.beautyMedlem sedan mars 20077 inlägg
#12

Fick du till det? kan du skriva ut HELA koden? sitter själv och klurar på detta men kommer ingen vart alls x(

131 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)