webForumDet fria alternativet

Skriva och läsa XML

.NETur .NET

2 svar · 334 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

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 :-(

Medlem sedan mars 20011 880 inlägg
#2

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.

Medlem sedan mars 20011 880 inlägg
#3

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.

128 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)