webForumDet fria alternativet

Hämta XML data

ASP

11 svar · 1 007 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#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

Medlem 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
Medlem 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

Medlem 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
Medlem 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
Medlem 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
Medlem 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

Medlem sedan dec. 20025 483 inlägg
#8

Bra att veta (y)

Medlem 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.

Medlem 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']")
  ...
Medlem sedan aug. 2002733 inlägg
#11

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

Medlem 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(

250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)