Avatar billede alex_sleiborg Nybegynder
11. juli 2006 - 21:41 Der er 6 kommentarer og
1 løsning

Tilføje xml element

Jeg skal have tilføjet et xml element

Noget af min xml fil ser således ud

<?xml version="1.0" encoding="utf-8"?>
<FirmaData>
  <Varer>
  </Varer>
</FirmaData>

Jeg vil gerne have tilføjet feks.
<Olie-Filter>
</Olie-Filter>

Inde under varer, jeg kan kun oprette et nyt element under roden med følgende kode

XmlDocument doc = new XmlDocument();
            doc.Load(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Configuration.xml"));

            XmlNode add = doc.CreateElement("OlieFilter");
            add.AppendChild(doc.CreateTextNode("OlieFilter"));
            doc.DocumentElement.AppendChild(add);

            doc.Save(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Configuration.xml"));

Nogen der har et hurtigt svar
Avatar billede arne_v Ekspert
11. juli 2006 - 21:46 #1
xxx.AppendChild(add);

xxx bestemmer hvor den adddes !

med lige praecis den XML kan du sikker bruge:

doc.DocumentElement.FirstChild.AppendChild(add);

men du skal no nok lede efter den rigtige node at appende til
Avatar billede alex_sleiborg Nybegynder
11. juli 2006 - 21:58 #2
Næ det virker ikke

Jeg vil gerne have tilføjet til xml dokumentet så det kommer til at se sådan der ud

<?xml version="1.0" encoding="utf-8"?>
<FirmaData>
  <Varer>
    <OlieFilter>OlieFilter</OlieFilter>
  </Varer>
</FirmaData>
Avatar billede arne_v Ekspert
11. juli 2006 - 22:12 #3
mystisk

using System;
using System.Xml;

namespace E
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            string s = @"<FirmaData>
  <Varer>
  </Varer>
</FirmaData>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(s);
            XmlNode add = doc.CreateElement("OlieFilter");
            add.AppendChild(doc.CreateTextNode("OlieFilter"));
            doc.DocumentElement.FirstChild.AppendChild(add);
            doc.Save(Console.Out);
        }
    }
}

udskriver:

<?xml version="1.0" encoding="IBM437"?>
<FirmaData>
  <Varer>
    <OlieFilter>OlieFilter</OlieFilter>
  </Varer>
</FirmaData>

hos mig
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 16:41 #4
Nu smider den det godt nok ind under en ekstra node. Men den skal ind under varer, ikke bare den første der er i xml dokumentet. Og ved mig kom der 3 stk <OlieFilter>OlieFilter</OlieFilter>
Avatar billede arne_v Ekspert
12. juli 2006 - 17:16 #5
Ja - du skal naeppe bruge FirstChild nok snarere en SelectSingleNode

3 x indsaet tyder paa 3 x kald
Avatar billede alex_sleiborg Nybegynder
12. juli 2006 - 19:21 #6
Der kom den :)

doc.DocumentElement.SelectSingleNode("/FirmaData/Varer").AppendChild(add);

Smid et svar arne. Og mange tak for hjælpen
Avatar billede arne_v Ekspert
12. juli 2006 - 19:37 #7
svar
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