<?xml version="1.0" encoding="UTF-8"?>
<hulu id="1000" name="1000">
<user>
<param name="userID" value="001"/>
<param name="username" value="xman"/>
</user>
</hulu>大家好,想把这个xml 放入 DataGrid中 请问如何操作?形式为这样的     userid   username   
      001        xman       XmlNodeList nodes = dom.SelectNodes("hulu/user/param[@name='userID']|hulu/user/param[@name='username']"); 
用这个好象放不了两列急需  谢谢~~~各位`~~ps:这个问题是朋友提的, 查询出所有是user节点且满足name='userID' 和name='username'

解决方案 »

  1.   

    XmlNodeList nodes = dom.SelectNodes("hulu/user/param[@name='userID']); 
    再取遍历nodes ,hulu/user/param[@name='username']
      

  2.   

    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
    d.Load(Server.MapPath("XMLFile.xml"));
    System.Xml.XmlNodeList nodes = d.SelectNodes("/hulu/user[param/@name= 'userID' and param/@name= 'username']");
    foreach(System.Xml.XmlNode node in nodes)
    {
      Response.Write("<li>");
      Response.Write(node.ChildNodes[0].Attributes["value"].Value);
      Response.Write(node.ChildNodes[1].Attributes["value"].Value);
    }
      

  3.   

    根据id取hulu/user/param,遍历param,取param的name和value属性
      

  4.   

    想把这个xml 放入 DataGrid中 请问如何操作?<%@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Page_Load( object sender, EventArgs e )
      {
        System.Data.DataTable dt = new System.Data.DataTable();
        System.Data.DataColumn column;
        System.Data.DataRow row;
        column = new System.Data.DataColumn();
        column.DataType = System.Type.GetType("System.String");
        column.ColumnName = "userid";
        dt.Columns.Add(column);    // Create second column.
        column = new System.Data.DataColumn();
        column.DataType = Type.GetType("System.String");
        column.ColumnName = "username";
        dt.Columns.Add(column);    System.Xml.XmlDocument d = new System.Xml.XmlDocument();
        d.Load(Server.MapPath("XMLFile.xml"));
        System.Xml.XmlNodeList nodes = d.SelectNodes("/hulu/user[param/@name= 'userID' and param/@name= 'username']");
        foreach (System.Xml.XmlNode node in nodes)
        {
          row = dt.NewRow();
          row["userid"] = node.ChildNodes[0].Attributes["value"].Value;
          row["username"] = node.ChildNodes[1].Attributes["value"].Value;
          dt.Rows.Add(row);
        }    dg.DataSource = dt;
        dg.DataBind();
      }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
      <form id="MengXianhui" runat="server" enctype="multipart/form-data">
        <asp:DataGrid ID="dg" runat="server">
        </asp:DataGrid>
      </form>
    </body>
    </html>
      

  5.   

    孟子老大
    麻烦你再看一下吧未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 77:  {
    行 78:  Response.Write("<li>");
    行 79:  Response.Write(node.ChildNodes[0].Attributes["value"]);
    行 80:  Response.Write(node.ChildNodes[1].Attributes["value"]);
    行 81:  }
     源文件: c:\inetpub\wwwroot\smsoneself\orgusers.aspx.cs    行: 79
      

  6.   

    谢谢 孟大哥~~~  但   报错...XmlDocument dom = new XmlDocument();
    dom.LoadXml(usersxml);
    XmlNodeList nodes = dom.SelectNodes("/hulu/user[param/@name= 'userID'  | /hulu/userparam/@name= 'username']");
    foreach(XmlNode node in nodes)
    {
    Response.Write("<li>");
             Response.Write(node.ChildNodes[0].Attributes["value"].Value);
             Response.Write(node.ChildNodes[1].Attributes["value"].Value);
    }
    我是这么 写的  他报 空值Response.Write(node.Attributes["value"].Value);
    这样写的情况下 形成一列  但 userID 和 Username 是夹杂在一起的~~~~  如何分两列哩?
      

  7.   

    XmlNodeList nodes = dom.SelectNodes("/hulu/user[param/@name= 'userID'  | /hulu/userparam/@name= 'username']");你看看我是这么写的嘛?
    当然为安全起见,需要先判断的if(node.ChildNodes[0].Attributes["value"] != null)
    Response.Write(node.ChildNodes[0].Attributes["value"].Value);
      

  8.   

    谢谢 孟大哥~~~  我知道我错哪了 我报文看似和楼主一样实际要比他多一些  例如
    <?xml version="1.0" encoding="UTF-8"?>
    <org id="2" name="XXX">
    <user>
    <param name="real" value="xx"/>
    <param name="name" value="小李"/>
    <param name="sex" value="男"/>
    <param name="mobile" value="10010"/>
    </user>
    <user>
    <param name="real" value="xxx"/>
    <param name="name" value="小王"/>
    <param name="sex" value="男"/>
    <param name="mobile" value="10201"/>
    </user>
    </org>所以 
    想要得到  姓名 和 手机 必须得这样
    Response.Write(node.ChildNodes[1].Attributes["value"].Value);
    Response.Write(node.ChildNodes[3].Attributes["value"].Value);
    呵呵   测试过  成功了 吼吼   谢谢 孟大哥...