<?xml version="1.0" encoding="utf-8" ?>
<Test>
  <Description>Testing</Description>
  <Server>https://localhost...</Server>
  <Operation>Request</Operation>
  <Parameter Name="RequestXml">
    <![CDATA[
    <RequestXml>
      <UserName>Wei</UserName>
      <Password>16</Password>
    </RequestXml>
    ]]>
  </Parameter>
</Test>这是项目中的一个xml文件,在程序中想要把Password的值改为aa,
C#代码怎么写啊...
怎么修改之后再保存进该xml文件

解决方案 »

  1.   

                XmlDocument xml = new XmlDocument();
                xml.Load(Server.MapPath("xml.xml"));
                XmlNode node = xml.SelectSingleNode("/Test/Parameter");
                string content = "<RequestXml><UserName>Wei</UserName><Password>aa</Password></RequestXml>";
                XmlCDataSection cdata = xml.CreateCDataSection(content);
                node.InnerText = "";
                node.AppendChild(cdata);
                xml.Save(Server.MapPath("xml.xml"));
      

  2.   

    感谢楼上的.
    但是我不想拼那个字符串.
    因为现实中不是只有UserName和Password两个元素.
    怎么取到CDATA中的xml文件.然后再把password的值改掉
    然后再保存.
    谢谢
      

  3.   

    node.InnerText在载入到XmlDocument中,再查找,替换,然后serialize成string, 保存回node.InnerText
      

  4.   

    按照findcaiyzh大大说的            XmlDocument xml = new XmlDocument();
                xml.Load(Server.MapPath("xml.xml"));
                XmlNode node = xml.SelectSingleNode("/Test/Parameter");
                string content = node.InnerText;            XmlDocument doc = new XmlDocument();
                doc.LoadXml(content);
                XmlNode n = doc.SelectSingleNode("/RequestXml/Password");
                n.InnerText = "aa";            XmlSerializer seria = new XmlSerializer(typeof(XmlDocument));
                MemoryStream ms = new MemoryStream();
                seria.Serialize(ms, doc);
                string result = Encoding.UTF8.GetString(ms.ToArray());
                Response.Write(result);
    /*
    输出
    <?xml version="1.0"?>
    <RequestXml>
      <UserName>Wei</UserName>
      <Password>aa</Password>
    </RequestXml>
    */
    //之后在自己处理