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>
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");
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
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");
18. marts 2007 - 21:41
#5
Hov, det var en anden konto, den logged ind med.
Men stadig tak :)