我给你说个思路把。
就先用DataSet 对象read     xml文件。
下来就是简单的表操作了。贼简单。

解决方案 »

  1.   

    不太懂。初次接触xml望多加指点。
      

  2.   

    1、在xml文件第一行上写一句:
    <?xml version="1.0"?>
    2、第二行和最后一行加一句:
    第二行:<myXml> 
    最后一行: </myXml>
    3、在winform的Form1_Load里:
    DataSet ds = new DataSet();
    ds.ReadXml("c:\\a.xml"); //假设这个xml文件存在c盘根目录下,注意要写
                             //二个反斜杠
    DataView dv = new DataView(ds.Tables["Category"]);
    dv.RowFilter = "Categoryid = 001001"; //取出Categoryid为001001的
    comboBox1.DataSource = dv;
    comboBox1.DisplayMember = "Text";
      

  3.   

    DataSet ds = new DataSet();
    ds.ReadXml("c:\\x.xml");
    foreach(DataRow dr in ds.Tables[0])
    {
    ......
    }简单吗?其实就这么简单
      

  4.   

    补充:
    如果要取出001,002的所有项
    dv.RowFilter = "Categoryid = 001 or Categoryid = 002";
    ...
    comboBox1.ValueMember = "Categoryid";假设界面上有个button,点击后用MessageBox显示所有满足条件的ID
    private button1_Click(...)
    {
    string strIDs = "满足条件的ID:";
    for(int i = 0; i < comboBox1.Items.Count; i++)
        strIDs += ((DataRowView)comboBox1.Items[i])["Categoryid"];
    MessageBox.Show(strIDs);
    }
      

  5.   

    用XPath查询不就行了,什么语言都不依赖
      

  6.   

    first :
           you lack the root element!
    second:
           add the root element to your file;
    third :
           use the xmldocument to load the filestream
    then you can do what you want to do in this dom
            
    good luck
      

  7.   

    现在要求找出所有Categoryid长度为三位的,可能有许多许多。
    分不够可以再加,我另开一个帖子放分。
      

  8.   

    assume your xml is like this<Categories>
    <Category>.....</Category>
    <Category>.....</Category>
    .....
    </Categories>tryusing System.Xml;string sFileName = "Cat.xml";
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(sFileName);
    XmlNodeList xnl = xmldoc.DocumentElement.SelectNodes("Category[string-length(Categoryid)=3]");for (int i=0; i < xnl.Count; i++)
    {
      xnl[i]["Categoryid"].InnerText += "11111111";
      xnl[i]["Description"].InnerText += "hello world";
      xnl[i]["Text"].InnerText += "23";
    }