Avatar billede signing Nybegynder
30. september 2008 - 11:07 Der er 2 kommentarer

Ændre xml childnode i c# kode

Goddag.

Jeg forsøger at ændre værdigen på en xml node baseret på en betingelse. Jeg ved at betingelsen virker da jeg har testet den på et andet object. Men jeg kan ikke ændre værdigen af min childnodes.

her er koden:

---------------------------XML--------------------------
<gallery>
  <image id="1">
    <src>1</src>
    <title>1</title>
    <description>1</description>
  </image>
  <image id="2">
    <src>1</src>
    <title>1</title>
    <description>1</description>
  </image>
  <image id="3">
    <src>1</src>
    <title>1</title>
    <description>1</description>
  </image>
  <image id="4">
    <src>Vinter.jpg</src>
    <title>dfg</title>
    <description>gfds</description>
  </image>
  <image id="5">
    <src>1</src>
    <title>1</title>
    <description>1</description>
  </image>
  <image id="6">
    <src>1</src>
    <title>1</title>
    <description>1</description>
  </image>
</gallery>

-------------------------C#----------------------------

  XmlDocument doc = new XmlDocument();
  doc.Load(@"file:///P:\projektasgaard\WebSite2\parser.xml");
  XmlNodeList container = doc.GetElementsByTagName("image");
  foreach (XmlNode image in container)
  {
      if (image.ChildNodes[0].FirstChild.Value == "1")
      {
          image.ChildNodes[0].FirstChild.Value = "2";
      }
  }

-------------------------------------------------
Jeg tænker at det muligvis er syntaksen for ændring der skal
være anderledes. Nogen foreslag?
Avatar billede arne_v Ekspert
30. september 2008 - 15:21 #1
Din kode virker fint hos mig !
Avatar billede signing Nybegynder
01. oktober 2008 - 11:40 #2
Det lyder mærkeligt da det ikke virkede hos mig. Men jeg fik det til at virke med dette:

XmlDocument doc = new XmlDocument();
        doc.Load(@"C:\Documents and Settings\test.xml"); 
        XmlNodeList opel = doc.DocumentElement.SelectNodes("fabrikat[navn]");
 
        for (int i=0; i<=1; i++)
        {
            if (opel[i].ChildNodes[0].FirstChild.Value=="Volvo")
            {
                opel[i].ChildNodes[0].FirstChild.Value = "";
            }
        }
        doc.Save(@"C:\test4.xml");

Du kan muligvis genkende lidt af koden da jeg tog udgangspunkt i dit "erstat" eksempel du postede i dit xml indlæg.
Men der er så opstået et andet problem som jeg vil lave et nyt indlæg om.
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
Kurser inden for grundlæggende programmering

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