Avatar billede jakobdo Ekspert
28. januar 2005 - 19:04 Der er 3 kommentarer og
1 løsning

Indsæt Node i XML, hvis ikke den findes?

I dag har jeg følgende XML-doc:

<?xml version="1.0" encoding="UTF-8"?>
<tasks>
  <task>task1</task>
  <task>task2</task>
</tasks>

Så har jeg koden:

//Create XML Doc...
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(fileName);
            XmlNode root = xmlDoc.DocumentElement;
           
            foreach(ListViewItem lvi in lvTasks.Items)
            {
                XmlElement childNode = xmlDoc.CreateElement("task");
                XmlText textNode = xmlDoc.CreateTextNode(lvi.Text);
                childNode.AppendChild(textNode);
                root.AppendChild(childNode);
            }
               
            xmlDoc.Save(fileName);

I min liste kan jeg godt have:
task1
task2
task3
osv...

Er der en måde hvor jeg kan tjekke om en værdi/node er i mit XMLdoc, og så indsætte det hvis ikke?

Min kode ovenover genere:

<?xml version="1.0" encoding="UTF-8"?>
<tasks>
  <task>task1</task>
  <task>task2</task>
  <task>task1</task>
  <task>task2</task>
  <task>task3</task>
</tasks>

Og jeg ønsker jo ikke task1 og task2 2 gange...
Kun at task3 skal tilføjes...
Avatar billede arne_v Ekspert
28. januar 2005 - 19:08 #1
Ja.

Du må kunn elave en SelectNodes eller SelectSingleNode med en XPath
expression og se om den allerede er der.
Avatar billede arne_v Ekspert
28. januar 2005 - 19:11 #2
Utestet:

if(xmlDoc.SelectSingleNode("/tasks/task[.='" + s + "']") != null)
{
...
}
Avatar billede arne_v Ekspert
28. januar 2005 - 19:17 #3
Jo - det bør virke !
Avatar billede jakobdo Ekspert
28. januar 2005 - 22:14 #4
Det gør det også! Takker for hjælpen! (er der noget du ikke styrer?) :o)
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