要对XML文件进行操作,须要声明以下命名空间:
using System.Xml;

一、检查指定XML文件是否存在

             System.IO.File.Exists(文件路径及名称);

二、利用C#编程创建 XML文件

         我在网上找到了这样的两段代码:
         代码一:
             XmlDocument xmldoc = new XmlDocument();
             XmlNode xmlnode;
             XmlElement xmlelem;
             XmlElement xmlelem2;
             XmlText xmltext;

             //加入XML的声明段落
             xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
             xmlnode.InnerText+=" encoding=\"GB2312\"";
             xmldoc.AppendChild(xmlnode);

             //加入一个根元素
             xmlelem = xmldoc.CreateElement("", "ROOT", "");
             xmltext = xmldoc.CreateTextNode("Root Text");
             xmlelem.AppendChild(xmltext);
             xmldoc.AppendChild(xmlelem);

             //加入另外一个元素
             xmlelem2 = xmldoc.CreateElement("SampleElement");
             xmlelem2 = xmldoc.CreateElement("","SampleElement","");
             xmltext = xmldoc.CreateTextNode("The text of the sample element");
             xmlelem2.AppendChild(xmltext);
             xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);

             //保存创建好的XML文档
             try
             {
                 xmldoc.Save("data.xml");
             }
             catch (Exception f)
             {
                 //显示错误信息
                 MessageBox.Show(f.Message);
             }
             //Console.ReadLine();
         这段代码在win2003ser+vs2005环境下测试成功,但是XML文件格式很乱,我不知道怎样调整格式,知道的朋友请赐教。

         代码二:
             string FileName =Application.StartupPath+"\\phone.xml";
             XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);

             objXmlTextWriter.Formatting = Formatting.Indented;
             objXmlTextWriter.Indentation = 6;

             objXmlTextWriter.WriteStartDocument();

             objXmlTextWriter.WriteStartElement("", "PhoneBook", "");

             objXmlTextWriter.WriteStartElement("", "Name", "");
             objXmlTextWriter.WriteString("加菲尔德");
             objXmlTextWriter.WriteEndElement();

             objXmlTextWriter.WriteStartElement("", "Number", "");
             objXmlTextWriter.WriteString("5555555");
             objXmlTextWriter.WriteEndElement();

             objXmlTextWriter.WriteStartElement("", "City", "");
             objXmlTextWriter.WriteString("纽约");
             objXmlTextWriter.WriteEndElement();

             objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");
             objXmlTextWriter.WriteString("26/10/1978");
             objXmlTextWriter.WriteEndElement();

             objXmlTextWriter.WriteEndElement();
             objXmlTextWriter.WriteEndDocument();

             objXmlTextWriter.Flush();

             objXmlTextWriter.Close();
         这段代码在win2003ser+vs2005环境下测试通过,出来的效果很好,也比较容易理解,我一般就是用这段代码创建XML文件。

三、读取、修改XML文件的某个节点的值

             string path = "phone.xml";  
             XmlDocument doc = new XmlDocument();
             doc.Load(path);
             //读所有节点表
             XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
             //读取节点值
             XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm);   //node.InnerText 就是读取出来的值

             //修改节点值
             node.InnerText="要修改的内容";

             //保存修改后的内容
             doc.Save(path);
一.写入XML文件
 1/// <summary>
 2/// 写入XML文件
 3/// </summary>
 4private void WriteXML()
 5{
    /// 创建一个表示所要生成的XML文件路径的字符串。如果该路径指向NTFS分区,则需要相关的访问权限。
    string filename = XMLFilePathTextBox.Text;
   
    /// 创建一个写入XML数据的文件流
10    System.IO.FileStream myFileStream = new System.IO.FileStream(filename, System.IO.FileMode.Create);
11   
12    /// 使用文件流对象创建一个XmlTextWriter对象
13    XmlTextWriter myXmlWriter = new XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);
14
15    myXmlWriter.Formatting = Formatting.Indented;
16
17    try
18    {
19        /// 使用WriteXMLbyXmlWriter方法把数据写入XmlTextWriter对象中
20        WriteXMLbyXmlWriter(myXmlWriter, "MSFT", 74.5, 5.5, 49020000);
21       
22        /// 通过Close方法的调用,XmlTextWriter对象的数据最终写入XML文件
23        myXmlWriter.Close();
24        Page.Response.Write("生成XML文档成功!");
25    }
26    catch
27    {
28        Page.Response.Write("生成XML文档失败!请检查路径是否正确,以及是否有写入权限。");
29    }
30}
31
32private void WriteXMLbyXmlWriter(XmlWriter writer, string symbol, double price, double change, long volume)
33{
34    writer.WriteStartElement("Stock");
35    writer.WriteAttributeString("Symbol", symbol);
36    writer.WriteElementString("Price", XmlConvert.ToString(price));
37    writer.WriteElementString("Change", XmlConvert.ToString(change));
38    writer.WriteElementString("Volume", XmlConvert.ToString(volume));
39    writer.WriteEndElement();
40}
 二.通过DOM读取XML文件
 1/// <summary>
 2/// 通过DOM读取XML文件
 3/// </summary>
 4private void ReadXMLbyDOM()
 5{
    /// 创建XmlDocument类的实例
    XmlDocument doc = new XmlDocument();
    ArrayList Nodues = new ArrayList();
   
10    /// 把people.xml文件读入内存,形成一个DOM结构
11    doc.Load( Server.MapPath("people.xml") );
12    XmlNode root = doc.DocumentElement;
13    foreach( XmlNode personElement in root.ChildNodes )
14        Nodues.Add(personElement.FirstChild.Value);
15
16    XMLNodeListBox.DataSource = Nodues;
17    XMLNodeListBox.DataBind();
18}
19
 三.通过XMLReader读取XML文件
 1/// <summary>
 2/// 通过XMLReader读取XML文件
 3/// </summary>
 4private void ReadXMLbyXmlReader()
 5{
    ///创建XML读取器
    XmlTextReader reader = new XmlTextReader( Server.MapPath("students.xml") );
    ArrayList Nodues = new ArrayList();
 9
10    while( reader.Read() )
11    {
12        if( reader.NodeType == XmlNodeType.Element && reader.Name == "NAME" )
13        {
14            reader.Read();
15    

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-18
  • 2021-05-17
  • 2022-03-09
  • 2021-08-07
猜你喜欢
  • 2022-01-04
  • 2022-12-23
  • 2021-11-10
  • 2021-06-21
  • 2021-06-12
  • 2021-09-16
相关资源
相似解决方案