我的xml文件中有个people节点,在people节点下有个name节点,其中 <name>他 </name>,运行后点击添加按钮 
name节点变为 <name value="他">他<value> 
我的后台代码为 <div style="text-align:center"> 
        <table> 
            <asp:Repeater ID="rptResult" runat="server"> 
                <ItemTemplate> 
                    <tr> 
                        <td> <%# Eval("no") %> </td> 
                        <td> <%# Eval("name") %> </td> 
                        <td> <%# Eval("age") %> </td> 
                        <td> <%# Eval("sex") %> </td>                        
                        <td> <a href="AddXml.aspx">添加 </a> </td> 
                        <td> <a href="EditXml.aspx?Xid= <%# Eval("no") %>">编辑 </a> </td> 
                        <td> <a href="DelXml.aspx?Xid= <%# Eval("no")%>">删除 </a> </td> 
                    </tr> 
                </ItemTemplate> 
            </asp:Repeater> 
        </table>    
    </div> 前台为 
protected void btnAdd_Click(object sender, EventArgs e) 
        { 
            XmlDocument doc = new XmlDocument(); 
            doc.Load(Server.MapPath("XMLFile/xmlFile.xml")); 
            
            //创建一个节点 
            XmlElement exml = doc.CreateElement("people"); 
            //在exml下创建节点 
            XmlElement elno = doc.CreateElement("no"); 
            XmlElement elname = doc.CreateElement("name"); 
            XmlElement elage = doc.CreateElement("age"); 
            XmlElement elsex = doc.CreateElement("sex"); 
            elno.InnerText = returncount(); 
            elname.SetAttribute("value",this.txtName.Text.Trim()); 
            elage.InnerText = this.txtAge.Text.Trim(); 
            elsex.InnerText = this.txtSex.Text.Trim(); 
            //将exml下的节点加到exml上 
            exml.AppendChild(elno); 
            exml.AppendChild(elname); 
            exml.AppendChild(elage); 
            exml.AppendChild(elsex);             doc.DocumentElement.AppendChild(exml); 
                                    
            doc.Save(Server.MapPath("XMLFile/xmlFile.xml")); 
            Response.Redirect("default.aspx"); 
        }         public string returncount() 
        { 
            //返回最后的no值并+1 
            string n = string.Empty; 
            XmlDocument doc = new XmlDocument(); 
            doc.Load(Server.MapPath("XMLFile/xmlFile.xml")); 
            XmlNode node = doc.DocumentElement.LastChild; 
            if (node != null) 
            { 
                n = Convert.ToString(Convert.ToUInt32(node["no"].InnerText) + 1); 
            } 
            return n; 
        } 
我每次运行都出错,错误为DataBinding:“System.Data.DataRowView”不包含名为“name”的属性,请教高手,怎么解决

解决方案 »

  1.   

    本人不是高手
    楼主没把问题说清楚,是开始绑定时就错还是你执行这个添加操作后绑定出错
    你添加后xml文件中数据是否添加进去了,格式有没问题
    若是绑定错误把绑定代码贴出来
      

  2.   

    执行后出错,添加进去了,xml文件中有的
    绑定代码 protected void Page_Load(object sender, EventArgs e)
            {
                DataSet ds = new DataSet();
                ds.ReadXml(Server.MapPath("XMLFile/xmlFile.xml"));
                if (ds.Tables.Count > 0)
                {
                    this.rptResult.DataSource = ds.Tables[0].DefaultView;
                    this.rptResult.DataBind();
                }
            }
      

  3.   

    补充:doc.Load(Server.MapPath("XMLFile/xmlFile.xml")); 中的Server.MapPath可以换别的或者不用吗?XmlElement又可以换成其它的什么?
      

  4.   

    Server.MapPath 这个估计没办法换
    我从xml中取值时是用的xmlNode来取节点
    你试下这个
      

  5.   

    xmlnode node=doc.docimentelement;?
      

  6.   

    你可以用xmlnode.Clone方法来复制一个一样的节点
    然后给他属性赋值
      

  7.   

    ds.ReadXml(Server.MapPath("XMLFile/xmlFile.xml")); 
    调试查看一下,取出来后 ds.Table[0] 中的数据结构是不是你想要的。
      

  8.   


    xml.Load(Server.MapPath("XMLFile.xml"));
            XmlNode tn = (XmlNode)xml.DocumentElement.FirstChild.FirstChild.CloneNode(false);
            tn.Attributes["title"].Value = "学生-3";
            tn.Attributes["url"].Value = "HtmlEditor.aspx";
            xml.DocumentElement.FirstChild.AppendChild(tn);
            xml.Save(Server.MapPath("XMLFile.xml"));
            Response.Redirect("XMLTemp.aspx");
    <?xml version="1.0" encoding="utf-8"?>
    <school title="学校" url="HtmlEditor.aspx">
      <class title="班级-1" url="HtmlEditor.aspx">
        <student title="学生-1" url="HtmlEditor.aspx">
        </student>
        <student title="学生-2" url="HtmlEditor.aspx">
        </student>
      </class>
      <class title="班级-2" url="HtmlEditor.aspx">
        <student title="学生-1" url="HtmlEditor.aspx">
        </student>
        <student title="学生-2" url="HtmlEditor.aspx">
        </student>
      </class>
    </school>