DataSet.ReadXml 方法[C#] 
private void DemonstrateReadWriteXMLDocumentWithStreamReader(){
   // Create a DataSet with one table and two columns.
   DataSet OriginalDataSet = new DataSet("myDataSet");
    OriginalDataSet.Namespace= "NetFrameWork";
   DataTable myTable = new DataTable("myTable");
   DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"));
   c1.AutoIncrement= true;
   DataColumn c2 = new DataColumn("item");
   myTable.Columns.Add(c1);
   myTable.Columns.Add(c2);
   OriginalDataSet.Tables.Add(myTable);
   // Add ten rows.
   DataRow newRow;
   for(int i = 0; i < 10; i++){
      newRow = myTable.NewRow();
      newRow["item"]= "item " + i;
      myTable.Rows.Add(newRow);
   }
   OriginalDataSet.AcceptChanges();
   // Print out values of each table in the DataSet using the 
   // function defined below.
   PrintValues(OriginalDataSet, "Original DataSet");
   // Write the schema and data to an XML file.
   string xmlFilename = "myXmlDocument.xml";
   // Use WriteXml to write the document.
   OriginalDataSet.WriteXml(xmlFilename);
   // Dispose of the original DataSet.
   OriginalDataSet.Dispose();
   // Create a new DataSet.
   DataSet newDataSet = new DataSet("New DataSet");
   // Read the XML document into the DataSet.
   newDataSet.ReadXml(xmlFilename);
   // Print out values of each table in the DataSet using the 
   // function defined below.
   PrintValues(newDataSet,"New DataSet");
}private void PrintValues(DataSet ds, string label){
   Console.WriteLine("\n" + label);
   foreach(DataTable t in ds.Tables){
      Console.WriteLine("TableName: " + t.TableName);
      foreach(DataRow r in t.Rows){
         foreach(DataColumn c in t.Columns){
            Console.Write("\t " + r[c] );
         }
         Console.WriteLine();
      }
   }
}

解决方案 »

  1.   

    DataSet具有读取XML文件的能力。
      

  2.   

    建议你去读 VS.net自带的帮助。里面有详细的DataSet与XML交互的例子。
      

  3.   

    定义一下:XmlElement el = null;然后创建
    el = doc.CreateElement("XML");
    el.InnerText = "insert into tablename values('2','mary','mary mary','y','mary','business woman')";
    el.SetAttribute("Text","我的管理");
    el.SetAttribute("Index","1");
    el.SetAttribute("Url","www.china.com");
    doc.DocumentElement.AppendChild(el);
    doc.Save("menu2.xml");解析:
    XmlDocument doc = new XmlDocument();
    doc.Load("menu2.xml");
    XmlNodeList nodelist;

    XmlElement root = doc.DocumentElement;
    nodelist = root.SelectNodes("/root/XML[@Text='我的管理']");
    再做个循环查找你要的节点就行了。
      

  4.   

    我不知道我的方法是否可行——使用.NET自带的XML串行化
    (using System.Xml;
     using System.Xml.Serialization;)
    声明一个Config.cs,结构与你需要读取的XML文件的结构一样,在这里假设为ExampleXml,然后在主程序中把你需要的数据设置为属性,这样,就可以使用下面的代码进行xml文件的读写了
    XmlSerializer serializer = new XmlSerializer(typeof(ExampleXml));
    ExampleXmlpo = serializer.Deserialize(reader) as ExampleXml;/*反序列化,即读取xml文件*/
    ExampleXmlpo = serializer.Serialize(writer) as ExampleXml;/*序列化,即写xml文件*/
    其中的reader和writer是TextWriter。这是我常用的方法,不知道是否可取。还请高手指点。
      

  5.   

    搂住你的问题太大了,XML本身只是一个结构化的数据集,从理论上来说,可以定义为任意的数据结构,所以你在用的时候应该根据你的实际情况来处理,比如你想把链表的数据保存成静态的XML,那你在你链表类里就应该写单独读取XML方法,这个工作应该由开发者来完成。只是平时我们在用的时候可能用DataSet来描叙的情况比较多(DataSet结构功能是在太强了),所以DataSet有专用的方法来读取或者处理;呵呵,我只是半捅水,有错误的地方包涵啊
      

  6.   

    无间道的例子我试过了,可以新建一个XML文件,也可以读取,结构复杂的XML文件不知道能否解析
    暴龙的例子,可以再具体些么?我笨还不止一点点,看不太明白!
      

  7.   

    看看vs.net里关于XmlDataDocument的帮助
      

  8.   

    装在xml到DataSetusing System;
    using System.Data;
    using System.Collections;
    using System.Xml;
    using System.IO;
    using System.Text;namespace ConsoleTest
    {
    /// <summary>
    /// ZZConsole 的摘要说明。
    /// </summary>
    public class ZZConsole
    {
    [STAThread]
    static void Main(string[] args)
    {

    XmlDocument xdoc= new XmlDocument();
    xdoc.Load(@"d:\test.xml");
    DataSet ds = CreatDataSet();
    XmlNodeList xList = xdoc.SelectNodes("//Item");
    foreach(XmlNode xNode in xList)
    {
    DataRow dr = ds.Tables["Items"].NewRow();
    dr["Item"] = xNode.Attributes["Name"].Value;
    ds.Tables["Items"].Rows.Add(dr);
    }
    foreach(DataRow dr in ds.Tables["Items"].Rows)
    {
    Console.WriteLine(dr["Item"].ToString());
    }
    Console.ReadLine();
    }
    public static DataSet CreatDataSet()
    {
    DataSet ds = new DataSet();
    DataTable dt = new DataTable("Items");
    DataColumn dc = new DataColumn("Item",typeof(string));
    dt.Columns.Add(dc);
    ds.Tables.Add(dt);
    return ds;
    }
    }
    }
    =======================================================
    <?xml version="1.0" encoding="utf-8" ?>
    <Root>
        <Class Name="1">
            <Item Name="Item11"/>
            <Item Name="Item12"/>
            <Item Name="Item13"/>
            <Item Name="Item14"/>
        </Class>
        <Class Name="2">
            <Item Name="Item21"/>
            <Item Name="Item22"/>
            <Item Name="Item23"/>
            <Item Name="Item24"/>
        </Class>
    </Root>
      

  9.   

    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();
    }

    }

    }