Necesito recuperar los atributos del nodo principal, pero mi código no imprime nada.
<MAINNODE AONE="22 11 12" ATWO="444"><CHILDNODE Aone="7"/></MAINNODE>
Este es el código:
var listItems = xdocument.Root
.Elements("MAINNODE")
.Select(e => e.Attribute("AONE"))
.Select(a => a.Value.Split(' ').Select(s => XmlConvert.ToInt32(s)).ToList())
.ToList();
foreach (List<int> list in listItems)
{
print(list);
}
Puedo obtener atributos de los nodos secundarios, pero no del principal. Soy nuevo en LINQ y XML.
Si este es el XML completo, entonces Root es el nodo principal y puede obtener sus atributos a través de xdocument.Root.Attributes
:
string[] listItems = xdocument.Root.Attribute("AONE").Value.Split();
int[] intItems = Array.ConvertAll(listItems, s => Int32.Parse(s));
foreach (int i in intItems) {
Console.WriteLine(i);
}
Esto imprimirá
22
11
12
Consulte también: Array.ConvertAll <TInput, TOutput> (TInput [], Converter <TInput, TOutput>) Método
Nota: si necesita una lista, puede crear una a partir de la int[] intItems
matriz
var list = new List<int>(intItems);
o, en lugar de convertir la matriz de cadenas en una matriz int primero, realice la conversión directamente cuando llame al constructor:
var list = new List<int>(listItems.Select(s => Int32.Parse(s)));
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras