<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smallfoolsRoot>
  <gallery Name="测试1" Folder="Gallery3">
    <image Thumb="thumb1.jpg" Large="image1.jpg" Caption="Forest Statue" Colour="3a3f36">
      <copy>测试测试</copy>
    </image>
    <image Thumb="thumb2.jpg" Large="image2.jpg" Caption="Yield Sign" Colour="3D3E42">
      <copy>测试测试</copy>
    </image>
  </gallery>
  <gallery Name="测试2" Folder="Gallery3">
    <image Thumb="thumb1.jpg" Large="image1.jpg" Caption="Forest Statue" Colour="3a3f36">
      <copy>测试测试</copy>
    </image>
    <image Thumb="thumb2.jpg" Large="image2.jpg" Caption="Yield Sign" Colour="3D3E42">
      <copy>测试测试</copy>
    </image>
  </gallery>
</smallfoolsRoot>
我对这个xml进行增删改查   并且能在gridview中显示出来  有人有类似的源码吗?  要显示出所有 例如 Thumb="thumb1.jpg" Large="image1.jpg" Caption="Forest Statue"  Colour="3a3f36"    <copy>测试测试</copy>
在线等  如果没明白我的意思  我会在补充

解决方案 »

  1.   


    1、XML数据源的文件名为Table.xml,结构如下: 
    <Tables> 
      <SOP> 
        <PitchY>0.40 </PitchY> 
        <T>0.40 </T> 
        <B>0.40 </B> 
        <WM>0.20 </WM> 
        <WM1>0 </WM1> 
        <WP>0.40 </WP> 
        <WP1>0 </WP1> 
        <R>0.05 </R> 
        <LM>L-0.2 </LM> 
        <WCM>0.18 </WCM> 
        <WCP>0.37 </WCP> 
      </SOP> 
      <SOP> 
        <PitchY>2.54 </PitchY> 
        <T>0.70 </T> 
        <B>0.80 </B> 
        <WM>0.60 </WM> 
        <WM1>1 </WM1> 
        <WP>0.30 </WP> 
        <WP1>1 </WP1> 
        <R>0.05 </R> 
        <LM>L </LM> 
        <WCM>0.50 </WCM> 
        <WCP>0.80 </WCP> 
      </SOP> 
      <DCHIP> 
        <BodySize>1005 </BodySize> 
        <L>0.50 </L> 
        <W>0.60 </W> 
        <D>0.40 </D> 
        <T>0.20 </T> 
        <S>0.05 </S> 
        <R>0.05 </R> 
        <Wm>0.53 </Wm> 
        <Lm>0.45 </Lm> 
      </DCHIP> 
      <DCHIP> 
        <BodySize>1608 </BodySize> 
        <L>0.70 </L> 
        <W>0.90 </W> 
        <D>0.80 </D> 
        <T>0.30 </T> 
        <S>0.05 </S> 
        <R>0.05 </R> 
        <Wm>0.85 </Wm> 
        <Lm>0.60 </Lm> 
      </DCHIP> 
      <DCHIP> 
        <BodySize>5750 </BodySize> 
        <L>1.50 </L> 
        <W>5.30 </W> 
        <D>4.10 </D> 
        <T>0.70 </T> 
        <S>0.15 </S> 
        <R>0.05 </R> 
        <Wm>5.20 </Wm> 
        <Lm>1.30 </Lm> 
      </DCHIP> 
    </Tables> 2、具体代码         string xmlPath = "Calculation/Tables.xml"; 
            
          //恢复GridView正常状态 
            private void ResetParameter() 
            { 
                gvParameter.EditIndex = -1; 
                LoadParameter(ddlShapeType.SelectedValue); 
            }         //加载XML并显示在GridView里 
            private void LoadParameter(string shapeType) 
            {          
                DataSet dsRule = new DataSet(); 
                dsRule.ReadXml(xmlPath);             DataTable dtRule = dsRule.Tables[shapeType]; 
                
                gvParameter.DataSource = dtRule; 
                gvParameter.DataBind(); 
            }         //新增事件 
            protected void lnbAddNew_Click(object sender, EventArgs e) 
            { 
                if (ddlShapeType.SelectedValue.Length == 0) 
                { 
                    lblMsg.Visible = true; 
                    lblMsg.Text = "Warning: Please select shape type !"; 
                    return; 
                } 
                else if (gvParameter.Rows.Count == 0) 
                { 
                    lblMsg.Visible = true; 
                    lblMsg.Text = "Warning: [" + ddlShapeType.SelectedValue + "] table not exists !"; 
                    return; 
                }                            DataSet ds = new DataSet(); 
                ds.ReadXml(xmlPath); 
                DataTable dt = ds.Tables[ddlShapeType.SelectedValue];             DataRow dr = dt.NewRow(); 
                dt.Rows.Add(dr);             ds.WriteXml(xmlPath);  //将修改写入Table.xml             ResetParameter(); 
            }       //编辑事件 
            protected void gvParameter_RowEditing(object sender, GridViewEditEventArgs e) 
            { 
                gvParameter.EditIndex = e.NewEditIndex; 
                LoadParameter(ddlShapeType.SelectedValue);             GridViewRow row = gvParameter.Rows[e.NewEditIndex];             //前面2列是Delete、Edit,故从第三列开始 
                for (int i = 2; i < row.Cells.Count; i++) 
                { 
                    TextBox tb = (TextBox)row.Cells[i].Controls[0]; 
                    tb.Width = 50; 
                } 
            }       //更新事件 
            protected void gvParameter_RowUpdating(object sender, GridViewUpdateEventArgs e) 
            { 
                GridViewRow row = gvParameter.Rows[e.RowIndex]; //获得当前行             int numCell = row.Cells.Count;  //共几列单元格(包含Edit和Delete 2列) 
                int currentRow = row.DataItemIndex; //对应DataSet对应的行索引             DataSet ds = new DataSet(); 
                ds.ReadXml(xmlPath); 
                DataRow dr;             dr = ds.Tables[ddlShapeType.SelectedValue].Rows[row.DataItemIndex];  //找到对应与DataSet行             string[] str = null;  //此数组定义表的列名             switch (ddlShapeType.SelectedValue) 
                { 
                    case "SOP": 
                        { 
                            str =new string[]{ "PitchY", "T", "B", "WM", "WM1", "WP", "WP1", "R", "LM", "WCM", "WCP" }; 
                            break; 
                        } 
                    case "DCHIP": 
                        { 
                            str = new string[] { "BodySize", "L", "W", "D", "T", "S", "R", "Wm", "Lm" }; 
                            break; 
                        } 
                }             int j = 0; 
                //从第3列开始,前面有2列是Edit和Delete 
                for (int i = 2; i < numCell; i++) 
                { 
                    string cText = ((TextBox)row.Cells[i].Controls[0]).Text;                 dr[str[j]] = cText;                 j++; 
                }             ds.WriteXml(xmlPath);  //将修改写入Table.xml             ResetParameter(); 
            }         //取消修改 
            protected void gvParameter_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
            { 
                ResetParameter(); 
            }       //删除事件 
            protected void gvParameter_RowDeleting(object sender, GridViewDeleteEventArgs e) 
            { 
                GridViewRow row = gvParameter.Rows[e.RowIndex];             int curr = row.RowIndex; 
                DataSet ds = new DataSet(); 
                ds.ReadXml(xmlPath);             DataRow dr = ds.Tables[ddlShapeType.SelectedValue].Rows[curr]; 
                dr.Delete(); 
                ds.WriteXml(xmlPath);             ResetParameter(); 
            }
      

  2.   

    您的意思  是我要做一个dropdownlist来决定我到底编辑上一层还是下一层吗?也就是决定编辑
    <gallery Name="测试1" Folder="Gallery3">  还是编辑<image Thumb="thumb1.jpg" Large="image1.jpg" Caption="Forest Statue" Colour="3a3f36">
          <copy>测试测试</copy>
        </image>