<ico name="bookstroe" ico="ico1" />   
 //元素ico有两个属性分别是name,ico,它们的值分别是:bookstroe,ico1
----
<ico>
  <name>ico2</name>
  <address>ico/ico2.ico</address>
</ico>

//元素ico有2个子元素分别是name,address,它们的内容分别是ico2,ico/ico2.ico

第一种方法

    XmlDocument xmldoc ;
    XmlNode xmlnode ;
    XmlElement xmlelem ;
    XmlElement xmlelem1 ;
    XmlText xmltext ;
     xmldoc = new XmlDocument ( ) ;
     //加入XML的声明段落
     xmlnode = xmldoc.CreateNode ( XmlNodeType.XmlDeclaration , "" , "" ) ;
     xmldoc.AppendChild ( xmlnode ) ;
     //加入一个根元素
     xmlelem = xmldoc.CreateElement ( "" , "ROOT" , "" ) ;
     xmltext = xmldoc.CreateTextNode ( "Root Text" ) ;
      //加属性
     XmlAttribute xmlattribute = xmldoc.CreateAttribute("number");
     xmlattribute.Value = "1";
     xmlelem.Attributes.Append(xmlattribute);
     xmlelem.AppendChild ( xmltext ) ;
     xmldoc.AppendChild ( xmlelem ) ;
     //加入另外一个元素
      xmlelem1 = xmldoc.CreateElement ( "" , "Element1" , "" ) ;
     xmltext = xmldoc.CreateTextNode ( "Element1 text " ) ;
     xmlelem1.AppendChild ( xmltext ) ;
     xmldoc.ChildNodes.Item(1).AppendChild ( xmlelem1 ) ;
     //保存创建好的XML文档
      xmldoc.Save ( "c:\\localinfo.xml" ) ; 

第二种方法..

  XmlDocument doc = new XmlDocument ( ) ;
      doc.LoadXml ( 
"<Employees> " +
                  "<NO1>" +
                  "<Name>Ma Jin Hu</Name>" +
                  "<ZIP> 239000 </ZIP>" +
                  "<Address>Feng Huang Street</Address>" +
                  "<City>Chu Zhou City</City>" +
                  "<State> ANHUI </State>" +
                  "</NO1>" +
                  "<NO2>" +
                  "<Name>Wang Tian</Name>" +
                  "<ZIP> 239000 </ZIP>" +
                  "<Address>Lang Ya Street</Address>" +
                  "<City>He Fei City</City>" +
                  "<State> ANHUI </State>" +
                  "</NO2>" +
                  "<NO3>" +
                  "<Name>Zou Wen Biao</Name>" +
                  "<ZIP> 100000 </ZIP>" +
                  "<Address>Sai Di Street</Address>" +
                  "<City>Bei Jin City</City>" +
                  "<State>Bei Jin</State>" +
                  "</NO3>" +
                  "</Employees>" ) ;
     
      doc.Save ( "localinfo.xml" ) ;

读XML文档
private XmlDocument InitXmlDocument()
  {
   try
   {
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(docName);
    return xmldoc;
   }
   catch(Exception err)
   {
    Console.Write(err.Message);
    //MessageBox.Show(err.ToString(),"VisIONLocalInformation",MessageBoxButtons.OK,MessageBoxIcon.Error);
    return null;
   }
   
  }

 public ArrayList LoadXmlDoc()
  {
   try
   {
    xmlDoc =  InitXmlDocument();
    if(xmlDoc == null)
    {
     return null;
    }
    XmlNodeList  xmlnodelist = xmlDoc.SelectSingleNode("LocalInfo/RecentFile").ChildNodes;
   recentfilecollection.Clear();
    foreach(XmlNode xn in xmlnodelist)
    {
     XmlElement xe = (XmlElement)xn;
     XmlNodeList xnl = xe.ChildNodes;
     RecentFile recentfile = new RecentFile();
     recentfile.FileName = xnl[0].InnerText;
     recentfile.FileOpenType = xnl[1].InnerText;
     recentfile.FileOpenDate = xnl[2].InnerText ;
    
     recentfilecollection.Add(recentfile);
    }
    return recentfilecollection;
   }
   catch(Exception err)
   {
    Console.Write(err.Message);
    //MessageBox.Show(err.Message);
    return null;
   }
  
  }

XML节点存在namespace(xmlns)的时候xpath不能正常工作

xml文件如下:

 1 <MODULE>
 2 <MESSAGE Type="Reply" Reference="Ref3">
 3 <PARAMETER Name="PublicReply" Type="XMLString">
 4 <MyAPI_RESULT xmlns="MyAPI">
 5 <ANSWER ID="801">
 6 <RECORDS>
 7 <ROW ForID="123456" data1="1" data2="2" data3="3"/>
 8 </RECORDS>
 9 </ANSWER>
10 </MyAPI_RESULT>
11 </PARAMETER>
12 </MESSAGE>
13 </MODULE>

如果按往常查询的话:
 XmlDocument doc = new XmlDocument();
doc.LoadXml(strXMLData);
XmlNode root 
= doc.SelectSingleNode(".//RECORDS");

root是null。

解决办法:

1 XmlDocument doc = new XmlDocument();
2 doc.LoadXml(strXMLData);
3 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4 manager.AddNamespace("MyAPI""MyAPI");
5 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);

加上XmlNamespaceMananger就可以正常了。