03. januar 2005 - 16:44Der er
24 kommentarer og 2 løsninger
XML læs og indsæt
Jeg er lige startet på et mindre projekt i C# hvor jeg vil lave et kostplanlægnings program.
Jeg har en grund form af en xml fil, som jeg gerne vil indlæse, og lede efter en dato, hvis datoen findes, skal der indsættes data mellem dato elementet.
Jeg har prøvet med XmlTextReader, og ved hjælp af den, kan jeg godt finde den ønskede dag. Men jeg kan ikke læse data'en ud i en ny fil, for at indsætte det data jeg ønsker.
Du skal tage og kigge på DataSet, som er meget nemt at arbejde med. MSDN dokumentationen som du kan slå op på www.msdn.com eller hvis du bruger VS.net, kan du læse meget mere om brugen af dataset.
Jeg har rodet lidt med DataSet tidligere i mine andre programmer.... Jeg kan bare ikke se hvordan jeg kan indsætte data ind i et dataset, som har læst min xml fil.
Det jeg ønsker at opnå, er at jeg f.eks finder <Day Date="03-01-2005">, og vil indsætte en nyt <Meal> Element. Hvordan opnår jeg det med et dataset?
Du skal læse dine data ind i et XmlDocument og så bruge xpath. Det er en function i XmlDocument der heder SelectNodes eller SelectNode som tager en xpath. Sådan ville jeg løse det.
okay, at finde det lyder godt nok. Men kan I svare mig på, om det er muligt at jeg kan indsætte data i det element jeg finder? Bare en lille ledetråd i den retning jeg skal gå i.
Det jeg er vil, er at jeg vil kunne sætte et nyt "Meal" element ind under et ønsket "Day" element.
Har du tid og lyst til at vise hvad retning jeg skal gå i? Det er helt iorden hvis du ikke har, men kan ikke lige helt se mig ud af det her. En hjælpende hånd ville være meget velkommen, og værdsat.
I den artikel kan jeg godt se hvordan man tilføjer et nyt element, men det element kommer til at ligge i bunden af xml dokumentet. Kan ikke lige se hvordan jeg skal kunne få det til at virke, så jeg finder et bestemt element, og indsætter ny data ind i det element.
Hvordan ville jeg så skulle finde et bestemt day element med xpath? Jeg bruger jo attributes, hvor man i din udemærket artikel, ser hvordan du finder et element ved hjælp af dens child element...
Du skal tænke på SelectNodes returnere de elementer fra dit xmldokument som du angiver i din xpath. Ud fra et element kan du gøre alt du vil. tilføje attributter, nye childs, slette den node du har hentet ind osv osv. Så du har fuld kontrol over det du vil. Det er meget brugbart når man arbejder med søgninger i xml personligt er jeg ikke glad for datasettet i sådanne scenarioer.
Men får en fejl: The reference node is not a child of this node.
Jeg troede det hele blev "nedarvet" så alt hang sammen med hinanden, men logisk set, kan jeg godt se hvorfor jeg får min fejl. Fordi childnode[0] fra dayselected, ikke er et direkte child fra selve dokumentet.
Hvordan fortæller jeg så mit doc, at jeg vil indsætte en ny node, til en childnode af selve dokumentet?
Føler at I begge har været til meget stor hjælp, med hver jeres indlæg. Jeg bukker og takker mange gange, samtidige med at jeg undskylder for mine dumme spørgsmål.
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.