Avatar billede mecenor Nybegynder
18. marts 2007 - 20:28 Der er 4 kommentarer og
2 løsninger

Ændre i XML

Hej, jeg er helt grøn med XML. Er der nogen, der kan give et eksempel på hvordan jeg ændrer værdien af fx data fra "100000,100000,150000,150000,100000" til "200000,200000,350000,250000,200000"?

<?xml version="1.0" encoding="UTF-8"?>
<graphs yTitle="" xTitle="Weeks" title="Individual promotion analysis" dataTitles="- 2,  1, 0, 1, 2" horzLines="-50000,0,50000,100000,150000,200000,250000,300000,350000">
    <graph title="A" graphColor="0x003399" data="100000,100000,150000,150000,100000"/>
    <graph title="B" graphColor="0xC71D1F" data="30000,30000,70000,65000,40000"/>
</graphs>
Avatar billede dr_chaos Nybegynder
18. marts 2007 - 20:54 #1
noget med
xmldoc = new XmlDocument();
xmldoc.Load(sti til dit xml document);
xd.SelectSingleNode("//graphs/graph").Attributes["Data"].InnerText="200000,200000,350000,250000,200000";
xd.Save("sti");
Avatar billede crazysnap Seniormester
18. marts 2007 - 21:00 #2
Hej mecenor,


Nu er der forskellige måder at gøre det på alt efter hvor mange nodes du skal ændre osv. Hvis det helt specifikt er 'data' attributen på <graph> med title="A" kan du udføre følgende kald (forudsat du har et XmlDocument objekt indholdende det XML-kode du viser ovenover):

//XmlData er af type XmlDocument og indeholder xml-koden.

//Gemmer graph noden med title="A" i en XmlNode
XmlNode nXmlGraph = XmlData.SelectSingleNode("//graphs/graph[@title='A']");

//Sætter data attributen til den nye værdi
nXmlGraph.Attributes.GetNamedItem("data").InnerText = "200000,200000,350000,250000,200000";

//Gemmer eventuelt xml dokumentet
XmlData.Save("C:\\data.xml");


Håber det var det du ledte efter.


Mvh.

- Snap
Avatar billede renard Nybegynder
18. marts 2007 - 21:35 #3
Tak begge to, kom med svar, så fordeler jeg points.


XmlDocument XmlData = new XmlDocument();
        XmlData.Load(@"C:\graphs.xml");

        XmlNode y_title = XmlData.SelectSingleNode("//graphs[@title='Individual promotion analysis']");
        y_title.Attributes.GetNamedItem("yTitle").InnerText = "Something";
       
        XmlNode data_a = XmlData.SelectSingleNode("//graphs/graph[@title='A']");
        data_a.Attributes.GetNamedItem("data").InnerText = "300000,100000,150000,50000,100000";

        XmlNode data_b = XmlData.SelectSingleNode("//graphs/graph[@title='B']");
        data_b.Attributes.GetNamedItem("data").InnerText = "30000,10000,15000,5000,10000";

        XmlData.Save(@"C:\graphs.xml");
Avatar billede dr_chaos Nybegynder
18. marts 2007 - 21:40 #4
Svar :)
Avatar billede mecenor Nybegynder
18. marts 2007 - 21:41 #5
Hov, det var en anden konto, den logged ind med.
Men stadig tak :)
Avatar billede crazysnap Seniormester
19. marts 2007 - 09:16 #6
Det var så lidt :)


Mvh.

- Snap
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester