2011-01-16 2 views
11

Ho esaminato altri post qui sullo stesso argomento e ho cercato su Google ma sono estremamente nuovo su C# NET e in perdita. Sto cercando di analizzare questo XML ...Parsing XML String in C#

<whmcsapi version="4.1.2"> 
<action>getstaffonline</action> 
<result>success</result> 
<totalresults>1</totalresults> 
<staffonline> 
    <staff> 
    <adminusername>Admin</adminusername> 
    <logintime>2010-03-03 18:29:12</logintime> 
    <ipaddress>127.0.0.1</ipaddress> 
    <lastvisit>2010-03-03 18:30:43</lastvisit> 
    </staff> 
</staffonline> 
</whmcsapi> 

utilizzando questo codice ..

XDocument doc = XDocument.Parse(strResponse); 

    var StaffMembers = doc.Descendants("staff").Select(staff => new 
    { 
     Name = staff.Element("adminusername").Value, 
     LoginTime = staff.Element("logintime").Value, 
     IPAddress = staff.Element("ipaddress").Value, 
     LastVisit = staff.Element("lastvisit").Value, 
    }).ToList(); 

    label1.Text = doc.Element("totalresults").Value; 

    foreach (var staff in StaffMembers) 
    { 
     listBox1.Items.Add(staff.Name); 
    } 

ho stampato il contenuto del strResponse e XML è sicuramente lì. Tuttavia, quando clicco su questo pulsante, nulla viene aggiunto a listBox1 o label1, quindi ho qualcosa che non va.

risposta

12

Aggiungi Root qui per iniziare la navigazione dall'elemento radice (whmcsapi):

string label1_Text = doc.Root.Element("totalresults").Value; 
+0

Grazie, che si sono risolti esso. Dopo che è stato risolto, ho capito che nessuno era online, quindi non aggiungeva nulla alla listbox. Grazie mille! –