本帖最后由 treasuring 于 2010-08-18 14:27:42 编辑

解决方案 »

  1.   

    DataSet ds = new DataSet();
                    ds.ReadXml(Server.MapPath("newxml1.xml"));                DataTable table = ds.Tables[1].Copy();
                    table.Rows.Clear();
                    foreach (DataRow row in ds.Tables[1].Select("store_Id=" + ds.Tables[0].Select("id=54")[0][0].ToString()))
                    {
                        table.ImportRow(row);
                    }                dg1.DataSource = table.DefaultView;
                    dg1.DataBind();
      

  2.   

    两个选择,一个是直接读取xml,SelectNodes("/npcstore/store[id=54]/item")
    另外一个使用dataset读取,那就需要在item节点添加一个字段对上一级的引用,例如:
     <item id="1102" storeid="54" />
    这样才能使用dataset读取时按storeid过滤。
      

  3.   

    你把DataSet中的每个表都绑定输出一下你就能找到对应的关系了。
    但是这么做不不是很好,参照4楼的做法修改一下你的XML文件吧。
      

  4.   

    不用dataset xpath 直接查询.
      

  5.   


    朋友,我试了下你这个方法.可是我发现通过ds.Tables[0].Select("id=54")抓出来的结果为为零啊.就是根本找不到这个字段..~
      

  6.   


    这个xml是一个配置文件,不能改的,我只是为了修改对应的id内容要写个程序.
    我使用了selectnodes的方法,我直接抓/npcstore或/npcstore/store的值都有,可是加了[id=\"54\"]就是空值了.!