asp.net 读取webservices后如何获取返回的xml文件的节点值xml文件如下<?xml version="1.0" encoding="utf-8"?> 
<data>
<dataitem
memberID="560" 
memberNum="001" 
memberValid="1" 
memberName="测试提醒" 
memberType="M" 
memberTypeName="银卡会员" 
cardType="M" 
cardTypeName="银卡会员" 
certificateType="IDCard" 
certificateNum="" 
phoneNum="" 
mobileNum="15901263942"
sAddress="" 
sEmail ="" 
password ="96E79218965EB72C92A549DD5A330112" 
passwordAnswer ="" 
memberBalance="0" >
</dataitem>
</data>
上面是asp.net 通过调用webservices后返回的xml数据想问的是如何
获取memberID,memberNum,……

解决方案 »

  1.   


    void Main()
    {
           string xml = @"<?xml version=""1.0"" encoding=""utf-8""?> 
    <data>
    <dataitem
    memberID=""560"" 
    memberNum=""001""
    memberValid=""1"" 
    memberName=""测试提醒"" 
    memberType=""M"" 
    memberTypeName=""银卡会员"" 
    cardType=""M"" 
    cardTypeName=""银卡会员"" 
    certificateType=""IDCard"" 
    certificateNum="""" 
    phoneNum="""" 
    mobileNum=""15901263942""
    sAddress="""" 
    sEmail ="""" 
    password =""96E79218965EB72C92A549DD5A330112"" 
    passwordAnswer ="""" 
    memberBalance=""0"" >
    </dataitem>
    </data>";
    XElement xmlPage = XElement.Parse(xml);
     
    var query = from x in xmlPage.Descendants("dataitem")
    select new
    {
    memberID=x.Attribute("memberID").Value,
    memberNum=x.Attribute("memberNum").Value
    };

    foreach(var q in query)
    {
    Console.WriteLine(q.memberID+"   "+q.memberNum);
    }
    /*
    560   001
    */
    }
      

  2.   

    XmlDocument xml = new XmlDocument();
                xml.Load("Test.xml");
                XmlNode xn = xml.SelectSingleNode("data/dataitem");
                foreach (XmlNode xn1 in xn.ChildNodes)
                {
                    Console.WriteLine(xn1.Attributes[""].Value);
                }
                Console.ReadLine();
    或XElement xe= XElement.Parse(xml);
    var query = from x in xe.Descendants("")
                        select new
                        {
                         memberID=y.Attribute("memberID").Value,
                         ...
                        };
      

  3.   


    public class MyXMLresult
    {
        public string memberID;
        public string memberNum;
    }private MyXMLresult[] GetMyXMLResultByXML()
    {
        XElement xmlPage = XElement.Parse(
    <?xml version="1.0" encoding="utf-8"?> 
    <data>
    <dataitem
    memberID="560" 
    memberNum="001" 
    memberValid="1" 
    memberName="????" 
    memberType="M" 
    memberTypeName="????" 
    cardType="M" 
    cardTypeName="????" 
    certificateType="IDCard" 
    certificateNum="" 
    phoneNum="" 
    mobileNum="15901263942"
    sAddress="" 
    sEmail ="" 
    password ="96E79218965EB72C92A549DD5A330112" 
    passwordAnswer ="" 
    memberBalance="0" >
    </dataitem>
    </data>); return (from x in xmlPage.Descendants("dataitem")
    select new MyXMLresult
    {
    memberID = x.Attribute("memberID").Value,
    memberNum = x.Attribute("memberNum").Value
    }).ToArray();
    }
      

  4.   

    或者,你把那些属性都封装一下,然后在页面获取一下,后台你可以这样写public static IList<News> GetAllNews()
            {
                XmlDocument xdoc = new XmlDocument();
                xdoc.Load("你读取的地址:例如:http://www.123.com/ok/a.xml");
                IList<News> news = new List<News>();
                XmlNode root = xdoc.DocumentElement;
                
                foreach (XmlNode node in root.ChildNodes)
                {
                    if (node.Name == "match")
                    {
                        foreach (XmlNode childNode in node.ChildNodes)
                        {
                            if (childNode.Name == "m")
                            {
                                News n = new News();
                                foreach (XmlNode childElement in childNode.ChildNodes)
                                {
                                   
                                    switch (childElement.Name)
                                    {
                                    
                                        case "i":
                                           n.I = childElement.InnerText;
                                            break;
                                        case "co":                                        n.Co = childElement.InnerText;
                                            break;
                                        case "le":
                                           n.Le = childElement.InnerText;
                                            break;
                                     
                                        case "t":
                                            n.T = childElement.InnerText;                                  
                                            break;
                                        case "t1":
                                            n.T1 = childElement.InnerText;
                                            break;
                                        case "t2":                                     
                                            n.T2 = childElement.InnerText; 
                                            break;
                                        case "er":                                      
                                            n.Er= childElement.InnerText;
                                            break;
                                        case "zl":
                                            n.Zl= childElement.InnerText;
                                            break;
                                        case "y":
                                            n.Y = childElement.InnerText;
                                            break;
                                        case "o":
                                            n.O = childElement.InnerText;
                                            break;
                                        case "d":
                                            n.D = childElement.InnerText;
                                            break;
                                        case "s":
                                            n.S = childElement.InnerText;
                                            break;
                                        case "bf":
                                            n.Bf = childElement.InnerText;
                                            break;
                                    }
                                }
                                news.Add(n);
                            }
                        }
                    }
                }
                return news;
            }//News是模型层,在页面只要用Datasource绑定一下就Ok了
    你把那些属性写一下,然后在前台页面绑定这个方法就可以了!