tengo un XMLUsando Linq y XDocument, ¿puedo obtener todos los elementos secundarios bajo la etiqueta padre?
<data>
<summary>
<account curr_desc='USD' acct_nbr='123' net='1000.00' />
<account curr_desc='USD' acct_nbr='456' net='2000.00' />
</summary>
<details>
<accounts>
<account acct_nbr="123" curr="USD">
<activity color='False' settle_date='02 Jul 2010' amt='580.00' />
<activity color='True' settle_date='09 Jul 2010' amt='420.00' />
</account>
<account acct_nbr="456" curr="USD">
<activity color='True' settle_date='12 Dec 2010' amt='1500.00' />
<activity color='True' settle_date='19 Dec 2010' amt='500.00' />
</account>
</accounts>
</details>
</data>
El uso de LINQ y XDocument, que puede extraer información "Resumen", pero ¿cómo puedo extraer "cuenta" información bajo la etiqueta "Resumen"?
XDocument XMLDoc = XDocument.Load("testdata.xml");
XElement accounts = (from xml2 in XMLDoc.Descendants("summary")
select xml2).FirstOrDefault();
¿Cómo puedo especificar algo como "summary/account
", por lo que me devuelve todos los elementos bajo <summary>
? Tenga en cuenta que tengo <account>
bajo <detail><accounts>
, solo quiero los elementos debajo de la etiqueta de resumen.
Editar: (Solución de Andrew)
var accounts = XMLDoc.Root.Elements("summary").Elements("account");
foreach (XElement elem in accounts)
{
sb.Append(elem.ToString());
}
debería echar un vistazo a LinqPad, le permite probar este tipo de cosas sobre la marcha. es limpio. :) –
Escribir 'de x en ... seleccionar x' es inútil. Simplemente escriba el código después de 'in' directamente. – svick
2svick, tienes razón en realidad ... No me di cuenta. He actualizado el código ahora :) ¡Gracias! –