我有一个xml文件: play.xml
<music>
<Entry>
  <Title>千里之外 - 周杰伦</Title>
  <Ref href="http://www.lzpcc.com.cn/268316.wma" />
</Entry>
<Entry>
  <Title>听妈妈的话 - 周杰伦</Title>
  <Ref href="http://wma.1ting.com/wmam/2.wma" />
</Entry>
</music>
怎样把这个文件邦定到DataList上呢?并对它进行编辑,删除,添加操作.对应的是:
 
歌曲名称                   地址                                           操作
千里之外 - 周杰伦        http://www.lzpcc.com.cn/268316.wma /    编辑  删除  添加
听妈妈的话 - 周杰伦     http://wma.1ting.com/wmam/2.wma"  /      编辑  删除  添加

解决方案 »

  1.   

    http://net.stuun.cn/program/ASPnet/shili/35715.html里面有个例子,搂住可以参考以下,希望对你有帮助
      

  2.   

    DataSet dst = new DataSet();
    dst.ReadXml(@"C:\play.xml");
    datalist.datasource = dst;这样行不?没试过,嘻~~~
      

  3.   

    用XmlDocument 解析        XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("play.xml"));
            XmlNodeList nodes = doc.SelectNodes("//Ref");
            foreach (XmlNode node in nodes)
            {
                XmlElement elem = (XmlElement)node;
                XmlAttribute attr = elem.GetAttributeNode("href");
                Response.Write(attr.InnerText+"<br/>");
            }可以取出Ref结点的属性 绑定自己可以构造
    或者使用DataSet.ReadXml将xml读入到dataset中
      

  4.   

    你把下面的代码改为c#   ''' <summary>
        ''' 根据XML文件返回表
        ''' </summary>
        ''' <param name="path">路径</param>
        ''' <returns></returns>
        ''' <res></res>
        Public Function getdata(ByVal path As String) As DataView
            Dim dt As DataTable = New DataTable()
            Dim dv As DataView = New DataView()
            Dim stream As FileStream = New FileStream(Server.MapPath(path), FileMode.Open)
            Dim doc As XmlDataDocument = New XmlDataDocument
            doc.DataSet.ReadXml(New StreamReader(stream))
            dt = doc.DataSet.Tables(0)
            dv = dt.DefaultView
            stream.Close()
            Return dv
        End Function
      

  5.   

     
    XmlDataDocument xmlDoc = new XmlDataDocument();
    DataSet xmlDataSet;
    //将Dataset与xmldoc关联
    xmlDataSet = xmlDoc.DataSet;
    //读取xml 文件,同时xmldataset也可读入相应的数据
    xmlDoc.Load("play.xml");然后再将xmldataset的值显示到datalist中.
      

  6.   

    正巧这些天也在学XML,帮LZ写了一个看
    楼主试试<%@ Page Language="C#" %>
    <%@ Import Namespace="System.Xml"%>  
    <%@ Import Namespace="System.Xml.XPath"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
        private XmlDocument doc = new XmlDocument();
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                bind();
            }
        }
        protected void bind()
        {
            //XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("x1.xml"));
            XmlNodeList nodes = doc.SelectNodes("music/Entry");
            DataList1.DataSource = nodes;
            DataList1.DataBind();
        }    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            switch(e.CommandName)
            {
                case "edit":
                    DataList1.EditItemIndex = e.Item.ItemIndex;
                    bind(); break;
                case "cancel":
                    DataList1.EditItemIndex = -1;
                    bind(); break;
                case "dele":
                    doc.Load(Server.MapPath("x1.xml"));
                    XmlNode node=doc.SelectSingleNode("/music/Entry/Ref[@href='"+e.CommandArgument+"']");
                    node.ParentNode.ParentNode.RemoveChild(node.ParentNode);                doc.Save(Server.MapPath("x1.xml"));
                    bind(); break;
                case "update":
                    doc.Load(Server.MapPath("x1.xml"));
                    XmlNode xnode = doc.SelectSingleNode("/music/Entry/Ref[@href='" + e.CommandArgument + "']");
                    XmlElement elem1 = xnode as XmlElement;
                    elem1.SetAttribute("href", ((TextBox)e.Item.FindControl("tb2")).Text);
                    doc.Save(Server.MapPath("x1.xml"));
                    DataList1.EditItemIndex = -1;
                    bind(); break;                       }
            
            
        }
    </script><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>datalist绑定xml</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:DataList ID="DataList1" EnableViewState="true"  runat="server" OnItemCommand="DataList1_ItemCommand" >
            <HeaderTemplate>
            <table>
            <tr>
                <td>歌曲名称</td>
                <td>歌曲地址</td>
                <td>操作</td>
            
            </tr>
            
            </HeaderTemplate>
            
            <ItemTemplate>
            
            <tr>
            <td><%#((XmlNode)Container.DataItem)["Title"].InnerText%> </td>
            <td><%#((XmlNode)Container.DataItem)["Ref"].GetAttribute("href").ToString()%> </td>
            <td>
            <asp:LinkButton ID="ltn1" Text="编辑" runat="server" CommandName="edit" CommandArgument='<%#((XmlNode)Container.DataItem)["Ref"].GetAttribute("href").ToString()%>'></asp:LinkButton>
            <asp:LinkButton Text="删除" ID="ltn2" runat="server" CommandName="dele" CommandArgument='<%#((XmlNode)Container.DataItem)["Ref"].GetAttribute("href").ToString()%>'></asp:LinkButton>
            </td>
            </tr>
            </ItemTemplate>
            <EditItemTemplate>
            <tr>
            <td><asp:TextBox ID="tb1" runat="server" Text='<%#((XmlNode)Container.DataItem)["Title"].InnerText%>'></asp:TextBox></td>
            <td><asp:TextBox ID="tb2" runat="server" Text='<%#((XmlNode)Container.DataItem)["Ref"].GetAttribute("href").ToString()%>'></asp:TextBox></td>
            <td>
            <asp:LinkButton ID="ltn3" runat="server" CommandArgument='<%#((XmlNode)Container.DataItem)["Ref"].GetAttribute("href").ToString()%>' CommandName="update">保存</asp:LinkButton>
            <asp:LinkButton ID="ltn4" runat="server" CommandName="cancel">取消</asp:LinkButton></td>
            </tr>
            
        </EditItemTemplate>
            <FooterTemplate>
            </table>
            </FooterTemplate>
            </asp:DataList>
        </div>
        </form>
    </body>
    </html>
      

  7.   

    恩,遇到过同样的问题,用gridview之类的不好使,最后还是xmldocument+xpath