---
title: "Skriva och läsa XML"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/180235-skriva-och-läsa-xml"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2009-09-11T14:32:31.000Z"
updated: "2009-09-13T13:35:21.000Z"
replies: 2
views: 344
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/180235-skriva-och-läsa-xml"
---

# Skriva och läsa XML

## #1 — saw, 2009-09-11T14:32Z

Jag skulle vara tacksam om jag fick lite hjälp med att utöka nedanståend 
c#-kod så att det blev en node mer.

```
public bool setSetting(string settingNode, string newValue)
        {
            xmldoc.Load(xmlFile);
            XmlNodeList list = xmldoc.SelectNodes("Settings");
            try
            {
                foreach (XmlNode searchNode in list)
                {
                    XmlNode node = searchNode.SelectSingleNode(settingNode.Replace(" ", "_"));
                    if (node == null)
                    {
                        XmlElement element = xmldoc.CreateElement(settingNode.Replace(" ", "_"));
                        xmldoc.DocumentElement.AppendChild(element);
                        searchNode.SelectSingleNode(settingNode.Replace(" ", "_")).InnerText = newValue;
                    }
                    else
                        searchNode.SelectSingleNode(settingNode.Replace(" ", "_")).InnerText = newValue;
                }
            }
            catch (Exception)
            { return false; }
            xmldoc.Save(xmlFile);
            return true;
        }
//*************
public string getSetting(string settingNode)
        {
            xmldoc.Load(xmlFile);
            XmlNodeList list = xmldoc.GetElementsByTagName("Settings");
            try
            {
                foreach (XmlNode searchNode in list)
                {
                    return searchNode.SelectSingleNode(settingNode.Replace(" ", "_")).InnerText;
                }
            }
            catch (Exception)
            { }
            return "";
        }
```

Som det nu är, så får jag

```
  <Zooma>110</Zooma>
  <Font_titel>Tahoma</Font_titel>
  <Font_Size>10</Font_Size>
```

..men jag skulle vilja ha

```
<Dokument>
<Zooma>110</Zooma>
  <Font_titel>Tahoma</Font_titel>
  <Font_Size>10</Font_Size>
</Dokument>
```

Jag har försökt att fixa till det, men jag misslyckas hela tiden :-(

Permalänk: https://www.webforum.nu/p/180235

## #2 — saw, 2009-09-13T09:51Z

Jag försöker så här:

```
public bool setSetting(string groupNode,string settingNode, string newValue)
        {
            xmldoc.Load(xmlFile);
            XmlNodeList list = xmldoc.SelectNodes("Settings");
            try
            {
                foreach (XmlNode searchGroupNode in list)
                {
                    XmlNode gNode = searchGroupNode.SelectSingleNode(groupNode.Replace(" ", "_"));

                    if (gNode == null)
                    {
                        XmlElement element = xmldoc.CreateElement(groupNode.Replace(" ", "_"));
                        xmldoc.DocumentElement.AppendChild(element);
                    }
                    //****
                    foreach (XmlNode searchNode in list)
                    {
                        XmlNode node = searchNode.SelectSingleNode(settingNode.Replace(" ", "_"));
                        if (node == null)
                        {
                            XmlElement element = xmldoc.CreateElement(settingNode.Replace(" ", "_"));
                            xmldoc.DocumentElement.AppendChild(element);
                            searchNode.SelectSingleNode(settingNode.Replace(" ", "_")).InnerText = newValue;
                        }
                        else
                            searchNode.SelectSingleNode(settingNode.Replace(" ", "_")).InnerText = newValue;
                    }
                   
                    //****
                }
            }
            catch (Exception)
            { return false; }
            xmldoc.Save(xmlFile);
            return true;
        }
```

..men det är lite misslyckat resultatet blir

```
<Dokument />
  <Zooma>110</Zooma>
  <Vindrag>19</Vindrag>
```

.. dvs jag kan göra den nya grupen, men den stänger sig själv.'Tips fore tacksamt.

Permalänk: https://www.webforum.nu/p/2201866

## #3 — saw, 2009-09-13T13:35Z

Då jag inte har kunnat lösa mitt problem, så har jag backat tiden, och löst det genom
ini-fil. Jag har fått det att fungera väldigt bra.

Permalänk: https://www.webforum.nu/p/2201881

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/180235-skriva-och-läsa-xml
