XML文件如下格式:
<webSiteList>
<site>
  <siteName>天涯社区</siteName> 
  <itemlist>中文输入</itemlist> 
  <itemlist>中文输入</itemlist> 
  </site>
<site>
  <siteName>猫扑网</siteName> 
  <itemlist>http://www.mop.com</itemlist> 
  <itemlist>国内最大的分栏式论坛,综合社区</itemlist> 
  <itemlist>没啥好说的了!</itemlist> 
  </site>
</webSiteList>比如说现在我读取了这一条:<siteName>天涯社区</siteName> 
  <itemlist>中文输入</itemlist> 
  <itemlist>中文输入</itemlist> 但我要怎么修改里面的值?或者添加新的<itemlist>

解决方案 »

  1.   

     XmlDocument doc = new XmlDocument();            doc.Load(@"D:\Project\C#Test\WindowsApplication1\WindowsApplication2\XMLFile3.xml");            XmlNode node = doc.SelectSingleNode("/webSiteList/site[siteName='天涯社区']");
                node["siteName"].InnerText = "修改";//修改
    //你的xml文件格式有点问题。itemlist很难区分
    所以建议修改itemlist 加一个id <siteName id=1>天涯社区</siteName> 
      <itemlist id=2>中文输入</itemlist> 
      <itemlist id=3>中文输入</itemlist>             XmlElement em = doc.CreateElement("itemlist");
    em.InnerText = "中文输入";
                node.AppendChild(em);//增加
                doc.Save((@"D:\Project\C#Test\WindowsApplication1\WindowsApplication2\XMLFile3.xml");//修改以后保存就可以了
      

  2.   

    就是在xml中添加节点值!!public void AddChildNode(string parentNodePath, string childnodename, string NodeAttribute, string NodeAttributeValue)
            {
                try
                {
                    XmlNode parentXmlNode = xmlDoc.SelectSingleNode(parentNodePath);
                    XmlNode childXmlNode = null;
                    if (!(parentXmlNode == null))
                    {
                        childXmlNode = xmlDoc.CreateElement(childnodename);
                        //添加属性
                        XmlAttribute nodeAttribute = this.xmlDoc.CreateAttribute(NodeAttribute);
                        nodeAttribute.Value = NodeAttributeValue;
                        childXmlNode.Attributes.Append(nodeAttribute);                    parentXmlNode.AppendChild(childXmlNode);
                    }
                    else
                    {
                        this.GetXmlRoot().AppendChild(childXmlNode);
                    }
                }
                catch (XmlException xmle)
                {
                    throw xmle;
                }
            }
      

  3.   

    doc.Load(@"D:\Project\C#Test\WindowsApplication1\WindowsApplication2\XMLFile3.xml");              XmlNode node = doc.SelectSingleNode("/webSiteList/site[siteName='天涯社区']");  
                node["siteName"].InnerText = "修改";//修改 
    里面的node["siteName"].InnerText="修改";
    这里的InnerText怎么不能接受变量值啊?一用变量就出错。
      

  4.   


    using System;
    using System.IO;
    using System.Text;
    using System.Diagnostics;
    using System.Threading;
    using System.Collections;
    using System.Data;
    using System.Xml;
    using System.Management;
    using System.Net;
    namespace Zhzuo
    {
    class ZZConsole
    {
    [STAThread]
    static void Main(string[] args)
    {
    string strXml="<?xml version=\"1.0\"?>"
    +"<Data>"
    +"<Head>"
    +"<Nodeid>1111</Nodeid>"
    +"<Subid>2222</Subid>"
    +"<Version>2004</Version>"
    +"<Date>20040302</Date>"
    +"<Time>101500</Time>"
    +"</Head>"
    +"<Body>"
    +"<Code>01</Code>"
    +"<Name>深圳</Name>"
    +"<IdType>0</IdType>"
    +"<Idno>110258740824082</Idno>"
    +"</Body>"
    +"</Data>";
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(strXml);
    string vv;

    XmlNodeList myNodes = doc.GetElementsByTagName("Version");
    vv = myNodes[0].InnerText;
    //修改
    myNodes[0].InnerText = "123455";
    Console.WriteLine(vv);
    myNodes = doc.SelectNodes("//Version");
    vv = myNodes[0].InnerText;
    Console.WriteLine(vv);
    //修改
    myNodes[0].InnerText = "67890";
    doc.Save("d:\\text.xml");
    Console.ReadLine();
    }

    }

    }