2011-01-16 13 views
11

He revisado otras publicaciones aquí sobre el mismo tema y busqué en Google, pero soy extremadamente nuevo en C# NET y estoy perdido. Estoy tratando de analizar este XML ...Análisis XML String en 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> 

utilizando este código ..

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); 
    } 

He impreso el contenido de strResponse y el XML es definitivamente allí. Sin embargo, cuando hago clic en este botón, no se agrega nada a listBox1 o la etiqueta1, así que algo está mal.

Respuesta

12

Añadir Root aquí para iniciar la navegación desde el elemento raíz (whmcsapi):

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

Gracias, que se resolvió. Después de arreglarlo, me di cuenta de que nadie estaba en línea, así que no agregaba nada al listbox. ¡Muchas gracias! –