System.Xml下,SelectNode/SelectSingleNode  ,用Xpath串为参数,
用Get***/Set***来得到值或修改值。

解决方案 »

  1.   

    设xml文档为
    <test>
    <name>server</name>
    </test>XmlDocument doc = new XmlDocument();
    doc.Load("sample.xml");
    XmlNodeList nodes = doc.GetElementsByTagName("name");
    nodes[0].InnerText = "NewValue";
    doc.Save("sample.xml");
      

  2.   

    如果我想修改
    <appSettings>
      <add key="PalauGlobalConfig" value="C:\Inetpub\wwwroot\"/> 
      <add key="LanguageType" value="china" />
    </appSettings>
    第二行的value的值,如何实现啊?
      

  3.   

    帮楼主写了一下
    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 ZZ
    {
    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")[0].InnerText;
    vv = myNodes[0].InnerText;
    Console.WriteLine(vv);
    //再修改
    myNodes[0].InnerText = "67890";
    doc.Save("d:\\text.xml");
    Console.ReadLine();
    }

    }

    }
      

  4.   


     谢谢楼上的解答
     不过这样的字结点只有一个字符串的值
     但是我如果想修改
    <appSettings>
      <add key="Config" value="C:\Inetpub\wwwroot\"/> 
      <add key="LanguageType" value="china" />
    </appSettings><appSettings>结点中的 第一行中的Value值,如何做?
    谢谢~~!
      

  5.   


      我应该如何修改其中的Value值阿?
      

  6.   

    class Nodetest
    {
    public Nodetest()
    {
    System.Xml.XmlDocument XmlDoc=new XmlDocument();
    System.Xml.XmlNode nd;
    XmlDoc.Load (@"c:\xml.xml");//你的xml文件
    string sXpath =@"/appSettings/add[key='Config']";
    nd=XmlDoc.SelectSingleNode (sXpath);
    nd.Attributes.GetNamedItem("value").Value ="afasdfasdfasdf";//<--something you wanna set here
    }
    }
      

  7.   

    更正一下上面的xpath有问题我修改一下
    string sXpath =@"/appSettings/add[@key='Config']";
      

  8.   

    楼上的,nd.Attributes.GetNamedItem("value").Value ="afasdfasdfasdf";是什么意思,可以解释一下吗?谢谢!
      

  9.   

    nd.Attributes.GetNamedItem("value")返回的是你要的结点的属性,我这里是没有问题的,如果说是“未将对象引用到实例”那有可能是你的xpath没有选出来你的接点
    你们在看看的说,如果还是不对,我在线等待
      

  10.   

    还有就是要注意xml里面大小写区分