02. december 2009 - 18:57
Der er
17 kommentarer
Hjælp til XML
Hej, Jeg har brug for hjælp til at komme igang med at læse en XML fil. Udsnit af min XML fil.: <?xml version="1.0" encoding="UTF-8" ?> - <LP1Data CreatedBy="LP1" Date="2009-11-24"> - <Parameter ID="LP1_WOOD" Name="Træsort"> <Value ID="LP1_WOOD_PINE" PriceID="" Name="Fyrretræ" /> <Value ID="LP1_WOOD_MAHOGNY" PriceID="LP1_WOOD_MAHOGNY" Name="Mahogni" /> <Value ID="LP1_WOOD_WOODALU" PriceID="LP1_WOOD_WOODALU" Name="Træ/Alu" /> </Parameter> - <Parameter ID="LP1_GLASS" Name="Glas"> <Value ID="LP1_STD_GLASS" PriceID="" Name="Superlavenergi 1.1" /> <Value ID="LP1_COSTWOLD_GLASS" PriceID="LP1_COSTWOLD_GLASS" Name="Råglas Costwold 1.1" /> <Value ID="LP1_SANDBLAEST_GLASS" PriceID="LP1_SANDBLAEST_GLASS" Name="Råglas Sandblæst MAT 1.1" /> <Value ID="LP1_LYD_GLASS" PriceID="LP1_LYD_GLASS" Name="Lydglas 4-12-6 1.1" /> </Parameter> Her vil jeg gerne have at den automatisk laver en select box for hver af de forskellige typer parameter. eks.: <select name="LP1_wood"> <option value="LP1_Wood">Fyrretræ</option> ... </select> osv.
Annonceindlæg fra Partnertekst
02. december 2009 - 20:48
#1
02. december 2009 - 21:12
#2
Tak - men vil du lave et working example ? ;-)
02. december 2009 - 22:20
#3
Nej - vil gerne yde hjælp her på siden men ikke udføre arbejde. Gør du et forsøg selv kan vi sikkert løse det her på siden de steder du går i står.
02. december 2009 - 22:27
#4
Så snart jeg kalder den her så får jeg fejl: sParameters = doc.GetElementsByTagName("Parameter") Microsoft VBScript runtime error '800a01c2' Wrong number of arguments or invalid property assignment: 'medlemmer' /custom/showproduct.asp, line 85
02. december 2009 - 22:34
#5
den linie du mener der er fejl i og fejlbeskrivelsen hænger ikke sammen - fejlen antyder jo at noget omkring "medlemmer" ikke stemmer overens.
02. december 2009 - 22:36
#6
Fordi jeg omdøbte medlemmer til sParameters før jeg postede.
02. december 2009 - 22:44
#7
Microsoft VBScript runtime error '800a01c2' Wrong number of arguments or invalid property assignment: 'sParameters' /custom/showproduct.asp, line 85
02. december 2009 - 23:05
#8
uden mere kode komme vi vist ikke langt.
02. december 2009 - 23:11
#9
Set doc = CreateObject("Microsoft.XMLDOM") doc.async = False ' Indlæs filen doc.load(server.MapPath("/datastore/LP1-Export.xml")) if doc.parseError.errorcode<>0 then 'error handling code response.Write("Ugyldig fil") else ' proceed response.Write("Fil OK") sParameters = doc.GetElementsByTagName("Parameter") Giver den fejl... Og xml filen jeg læser er det jeg har givet et udsnit af i 1. post
02. december 2009 - 23:23
#10
Set sParameters = doc.GetElementsByTagName("Parameter") hvis du går ud fra guiden så få alle ting med...
02. december 2009 - 23:31
#11
Arh... det havde jeg overset.
02. december 2009 - 23:37
#12
Nu er den XML fil jeg skal bearbejde ikke konstrueret helt på samme måde som den i eksemplet så bliver nød til at have noget mere hjælp. Som jeg forstår det så finder jeg alle parametre ved at benytte. Set medlemmer = doc.GetElementsByTagName("Parameters") Så den burde bestå af <Parameter ID="LP1_WOOD" Name="Træsort"> <Parameter ID="LP1_GLASS" Name="Glas"> Osv. er det rigtig forstået? Kan jeg så lave en for each newParam in Parameters og så udskrive "name" på denne parameter? i denne løkke, og inden i denne løkke laver jeg endnu en hvor jeg så henter alle values ud.
02. december 2009 - 23:56
#13
Har sammenkogt det her, og det virker som sådan, men når jeg løber min subliste igennem så gentager den alle values, jeg skal kun have dem som hører til de "parentnode" Set sParameters = doc.GetElementsByTagName("Parameter") Set NodeList = doc.getElementsByTagName("Parameter") For Each Elem In NodeList response.write(Elem.tagName & "<br>") response.write(Elem.Attributes.GetNamedItem("Name").Value & "<br>") Set subNodeList = doc.getElementsByTagName("Value") For Each subElem In subNodeList response.write(subElem.Attributes.GetNamedItem("Name").Value & "<br>") Next Next
03. december 2009 - 03:22
#14
Set subNodeList = doc.getElementsByTagName("Value") skal nok være: Set subNodeList = Elem.getElementsByTagName("Value")
03. december 2009 - 09:31
#15
Hej Arne, Det løste problemet - så er det kun et sidste issue. Længere nede i min XML Fil har jeg følgende.: <WindowPriceTables WindowType="NK-S1" WindowClass="DK" MinH="800" MaxH="1500" MinW="400" MaxW="700" StepH="50" StepW="50"> - <Parameter ID="LP1_OPENING" Name="Åbningsretning"> Og dem er der en del af, dvs. at når jeg nu udskriver det så kommer disse med, det jeg ønsker er at sætte en "regel" op så den kun medtager disse parametre såfremt at WindowType er netop det vindue jeg står på. Kan i guide mig i en regning til løsning af dette?
03. december 2009 - 19:34
#16
Proev med XPath til det. wpt = doc.SelectSingleNode("//WindowPriceTables[WindowType='" & typ & "']")
10. januar 2010 - 04:43
#17
Tid at få afsluttte her ?
Kurser inden for grundlæggende programmering