Jag har idag en väderfunktion på en av mina webbplatser som bygger på att SMHI laddar upp en .txt-fil via FTP som jag sedan läser ut information ifrån och presenterar vädret med lite bilder och text.
Nu håller dom dock på att byta ut systemet och jag har istället fått tillgång till en XML-fil på deras server som jag nu ska använda för att läsa ut informationen.
Jag har tidigare byggt en liknande funktion med hjälp av Microsoft.XMLHTTP, men där hämtade jag en hel webbsida och använde sedan (med hjälp av webforum) RegEXP för att hitta och presentera just den informationen jag vill ha ut. Men nu när det är XML, snyggt uppradat och allt så tänkte jag att man kanske kunde slippa det?
Finns det något enklare sätt att läsa in och plocka ut just dom delar av datan som jag vill ha eller är det regEXP som gäller ändå?
Nej, du ska inte använda regex för XML! Eller ja, du gör som du vill. ;)
Annars borde du kunna använda en DOM-parser. Det ger en betydligt mer lättläst kod.
Att läsa in en fil är enkelt:
function LoadDocument(filePath)
dim document
set document = Server.CreateObject("Microsoft.XMLDOM")
document.async = false
document.Load(filePath)
set LoadDocument = document
set document = nothing
end function
dim weather = LoadDocument("weather.xml")
När man har filen i minnet kan man läsa ut info m.h.a. XPath:
dim day = weather.selectSingleNode("//type/prop[@name='day']").Text
dim temp = weather.selectSingleNode("//type/prop[@name='temp']").Text
[...]
Nåt sånt borde få dig på banan iaf. Regex är skitbra för rätt ändamål men inte för Xml.
Då var jag tillbaka på jobbet efter en veckas sjukdom, och då ska man ta tag i detta igen :)
Jag får följande fel: Objektet stöder inte egenskapen eller metoden.
Så det känns som om det saknas något på min maskin, det är Windows 7 64-bitar och vad jag kan förstå efter att ha läst detta: http://en.wikipedia.org/wiki/MSXML så ska det ingå i Windows 7.
Någon aning om vad som saknas?
/edit:
Det var ju själv som hade skrivit fel, så nu funkar allt.
Tack för all hjälp!
270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e