14. marts 2004 - 16:11Der er
2 kommentarer og 1 løsning
Læse bestemte værdier
Situationen er den at jeg har nogle priser der går igen rundt om på díverse sider. Jeg vil gerne udtrække de´m fra et central XML-dokument. Så kan jeg rette alle priser én gang for alle.
Jeg forestiller mig noget i retning af at mit XML-doc ser sådan ud:
Har så et ASP-dokument, hvor der er en tabel, hvor jeg så i nogle bestemte felter vil udskrive de værdier jeg nu skal bruge. XML-filen ligger i samme mappe som resten af filerne.
Har set noget GetElementsByName("pris_lav_voksen").text men kan nu ikke få det til at funke.
Det jeg søger er et kort og præcist svar på hvordan jeg åbner mit XML, udtrækker den eller de felter jeg ønsker og smider disse i hver deres Variable.
Det er VB jeg benytter, f.eks. vil jeg gerne have en Var. der hedder strPris_lav_voksen, der indeholder værdien 40 fra mit XML-doc.
De fleste ting jeg finder omhandler at gennemløbe hele XML-filen og så udskrive hele molevitten, og det er ikke det jeg søger.
set oSource = Server.CreateObject("MSXML2.DOMDocument.3.0") oSource.async = false oSource.load(Server.MapPath("fil.xml"))
Nu kan du hente værdierne fra de enkelte noder, f.eks.: set oPrisHojVoksen = oSource.selectSingleNode("//pris_hoj_voksen") strPrisHojVoksen = oPrisHojVoksen.text
Bemærk at selectSingleNode() finder én node (den første), dvs hvis du har flere noder, der hedder pris_hoj_voksen duer det ikke. Så skal du i stedet bruge selectNodes(), der returnerer et node-set, som du kan løbe igennem: for each n in oSource.selectNodes("//pris_hoj_voksen") response.write n.text next
Og endelig: ("//pris_hoj_voksen") er en slags søgestreng som matcher alle pris_hoj_voksen noder i dokumentet uanset placering. Du kan referere til noder på et bestemt niveau ved at skrive hele stien ("prisliste/pris_hoj_voksen"). Der er desuden en masse smarte ting man kan bruge for at søge helt specifikke noder, f.eks hvor prisen er over 40: ("prisliste/pris_hoj_voksen[.<40]")
Jo tak. Du skulle kigge lidt på xsl hvis du vil gå videre med xml - det er et stylesheet hvor du f.eks. kan html-formattere xml-dokumentet præcis som du vil have det. Især hvis der er mange forskellige noder og attributes der skal læses kan det blive lidt bøvlet i en asp-fil, og hvis man vil rette lidt i html-koden (f.eks. tilføje en kolonne i en tabel) skal man rode rundt imellem en masse response.write osv., der er xsl overskueligt fordi det hele foregår som xml. God fornøjelse. Kim
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.