<?xml version="1.0" encoding="utf-8" ?> 
- <weather>
  <city>郑州</city> 
- <day number="0">
  <date>2008-11-04</date> 
  <week>星期二</week> 
  <icon_b>1</icon_b> 
  <icon_e>3</icon_e> 
  <text_b>晴</text_b> 
  <text_e>多云</text_e> 
  <temp_max>22</temp_max> 
  <temp_min>10</temp_min> 
  <windd_b>无风向</windd_b> 
  <windd_e>无风向</windd_e> 
  <winds_b>微风</winds_b> 
  <winds_e>微风</winds_e> 
  <index_ct>气温略高,建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。</index_ct> 
  <index_ys>为多云天气,但不会降水,因此您可放心出门,无须带雨伞。</index_ys> 
  <index_ls>多云,且气温偏高,适宜晾晒。赶紧把久未见阳光的衣物搬出来吸收一下太阳的味道吧!</index_ls> 
  <index_gj>天气晴好,蓝天白云拌您去逛街,既可以让您真正畅快地放松身心,又会有很多意外收获,赶快行动吧。</index_gj> 
  <index_uv>紫外线强度较弱,建议出门前涂擦SPF在12-15之间、PA+的防晒护肤品。</index_uv> 
  </day>
- <day number="1">
  <date>2008-11-05</date> 
  <week>星期三</week> 
  <icon_b>1</icon_b> 
  <icon_e>3</icon_e> 
  <text_b>晴</text_b> 
  <text_e>多云</text_e> 
  <temp_max>20</temp_max> 
  <temp_min>13</temp_min> 
  <windd_b>无风向</windd_b> 
  <windd_e>无风向</windd_e> 
  <winds_b>微风</winds_b> 
  <winds_e>微风</winds_e> 
  <index_ct>温度适中,建议着薄型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装、夹克衫等。</index_ct> 
  <index_ys>为多云天气,但不会降水,因此您可放心出门,无须带雨伞。</index_ys> 
  <index_ls>多云,且气温偏高,适宜晾晒。赶紧把久未见阳光的衣物搬出来吸收一下太阳的味道吧!</index_ls> 
  <index_gj>天气晴好,蓝天白云拌您去逛街,既可以让您真正畅快地放松身心,又会有很多意外收获,赶快行动吧。</index_gj> 
  <index_uv>紫外线强度较弱,建议出门前涂擦SPF在12-15之间、PA+的防晒护肤品。</index_uv> 
  </day>
- <day number="2">
  <date>2008-11-06</date> 
  <week>星期四</week> 
  <icon_b>3</icon_b> 
  <icon_e>3</icon_e> 
  <text_b>多云</text_b> 
  <text_e>多云</text_e> 
  <temp_max>20</temp_max> 
  <temp_min>12</temp_min> 
  <windd_b>无风向</windd_b> 
  <windd_e>无风向</windd_e> 
  <winds_b>微风</winds_b> 
  <winds_e>微风</winds_e> 
  <index_ct>温度适中,建议着薄型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装、夹克衫等。</index_ct> 
  <index_ys>为多云天气,但不会降水,因此您可放心出门,无须带雨伞。</index_ys> 
  <index_ls>多云,且气温偏高,适宜晾晒。赶紧把久未见阳光的衣物搬出来吸收一下太阳的味道吧!</index_ls> 
  <index_gj>天气晴好,蓝天白云拌您去逛街,既可以让您真正畅快地放松身心,又会有很多意外收获,赶快行动吧。</index_gj> 
  <index_uv>紫外线强度较弱,建议出门前涂擦SPF在12-15之间、PA+的防晒护肤品。</index_uv> 
  </day>
  </weather>
- <!--  w2.weather.cnb.yahoo.com uncompressed unked Mon Nov  3 21:59:24 CST 2008 
  --> 
private void button1_Click(object sender, EventArgs e)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(@"..\..\XMLFile1.xml");            XmlNode n1=doc.SelectSingleNode("weather");
            XmlNodeList dl = n1.SelectNodes("day ");
            for (int i = 0; i < dl.Count; i++)
            {
                XmlElement e1 = (XmlElement)dl[i];
                //在这里可以得到day 节点的number属性值进行区分
                string number = e1.GetAttribute("number");
            }
        }这只说了一半,后一半怎么写啊。不会,大家帮我下

解决方案 »

  1.   


       public partial class Form1 : Form
        {
            List<string>[] StringData = new List<string>[3];
            public Form1()
            {
                InitializeComponent();
                
            }
            private void button1_Click(object sender, EventArgs e)
            {
                //用于保存节点中的值
                StringData[0] = new List<string>();
                StringData[1] = new List<string>();
                StringData[2] = new List<string>();
                XmlDocument doc = new XmlDocument();
                doc.Load(@"..\..\XMLFile1.xml");            XmlNode n1=doc.SelectSingleNode("weather");
                XmlNodeList dl = n1.SelectNodes("day ");
                for (int i = 0; i < dl.Count; i++)
                {
                    XmlElement e1 = (XmlElement)dl[i];
                    string number = e1.GetAttribute("number");                XmlNodeList dl2 = dl[i].ChildNodes;
                    foreach (XmlNode xn in dl2)
                    {
                        string d1=xn.InnerText;
                        StringData[i].Add(d1);
                    }            }
            }    }
    不好意思昨天是以为你只需要区分节点。这个可以用的
      

  2.   

    如何读写XML文件的例子private void Form1_Load(object sender, System.EventArgs e)
    {//显示所有记录
    this.oleDbDataAdapter1.Fill(this.dataSet1,"客户");
    this.dataGrid1.DataSource=this.dataSet1;
    if(!this.dataGrid1.IsExpanded(0))
       this.dataGrid1.Expand(0);
    } private void button1_Click(object sender, System.EventArgs e)
    {//查询记录
    try
    {
    this.dataSet1.Clear();
    string StrSQL="SELECT * FROM 客户 WHERE ";
    StrSQL+=this.comboBox1.Text+" LIKE  '";
    StrSQL+=this.textBox1.Text+"'";
    if(this.comboBox1.Text=="所有记录")
    StrSQL="SELECT * FROM 客户";
    this.oleDbDataAdapter1.SelectCommand.CommandText=StrSQL;
    this.oleDbDataAdapter1.SelectCommand.Connection=this.oleDbConnection1;
    //打开数据库连接
    this.oleDbConnection1.Open();
    //执行SQL命令
    this.oleDbDataAdapter1.SelectCommand.ExecuteNonQuery();
    //关闭连接
    this.oleDbConnection1.Close();
    //更新数据集
    this.oleDbDataAdapter1.Fill(this.dataSet1,"客户");
    this.dataGrid1.DataSource=this.dataSet1;
    this.richTextBox1.Visible=false;
    this.dataGrid1.Visible=true;
    }
    catch(Exception Err)
    {
    MessageBox.Show("查询数据集记录操作失败:"+Err.Message,"信息提示",
    MessageBoxButtons.OK,MessageBoxIcon.Information);
    //如果打开了连接,则关闭它
    if(this.oleDbConnection1.State==ConnectionState.Open)
    {
    this.oleDbConnection1.Close();
    }
    }
    } private void Form1_Closed(object sender, System.EventArgs e)
    {//关闭程序
    //如果打开了连接,则关闭它
    if(this.oleDbConnection1.State==ConnectionState.Open)
    {
    this.oleDbConnection1.Close();
    }
    } private void button2_Click(object sender, System.EventArgs e)
    {//写入XML文件
    try
    {
    if(this.dataSet1==null)
    return;
    if(this.saveFileDialog1.ShowDialog()==DialogResult.Cancel)
    return;
    string FileName=this.saveFileDialog1.FileName;
    if(FileName.Length<1)
    return;
    //将数据写入XML文件
    this.dataSet1.WriteXml(FileName,XmlWriteMode.WriteSchema);
    MessageBox.Show("写入XML文件操作成功!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    catch(Exception Err)
    {
    MessageBox.Show("写入XML文件发生错误:"+Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    } private void button3_Click(object sender, System.EventArgs e)
    {//读取XML文件
    if(this.openFileDialog1.ShowDialog()==DialogResult.Cancel)
    return;
    string FileName=this.openFileDialog1.FileName;
    if(FileName.Length<1)
    return;
    System.Xml.XmlTextReader MyReader=new System.Xml.XmlTextReader(FileName);
    //从XmlTextReader中读取数据
    this.dataSet1.ReadXml(MyReader,XmlReadMode.ReadSchema);
    this.dataGrid1.DataSource=this.dataSet1;
    this.richTextBox1.Visible=false;
    this.dataGrid1.Visible=true;
    }
    private void button4_Click(object sender, System.EventArgs e)
    {//显示XML文件
    if(this.dataSet1==null)
    return;
    //取得XSD架构数据
    this.richTextBox1.Text=this.dataSet1.GetXmlSchema();
    //取得数据
    this.richTextBox1.Text+=this.dataSet1.GetXml();
    this.richTextBox1.Visible=true;
    this.dataGrid1.Visible=false;
    }
    }
      

  3.   

    XmlDocument d = new XmlDocument();
                d.Load("XMLFile1.xml");           XmlNodeList l= d.GetElementsByTagName("day");
               MessageBox.Show(l[0]["text_b"].InnerText);//第一天的
               MessageBox.Show(l[1]["text_b"].InnerText);//第二天的
               MessageBox.Show(l[2]["text_b"].InnerText);//第三天的