Cómo crear una jerarquía con la agrupación
Actualización: November 2007
Este ejemplo muestra cómo agrupar datos y después generar XML basado en la agrupación.
Ejemplo
Este ejemplo agrupa primero los datos por categorías y, a continuación, genera un nuevo archivo XML en el que la jerarquía XML refleja la agrupación.
Este ejemplo utiliza el siguiente documento XML: Archivo XML de muestra: datos numéricos (LINQ to XML).
XElement doc = XElement.Load("Data.xml");
var newData =
new XElement("Root",
from data in doc.Elements("Data")
group data by (string)data.Element("Category") into groupedData
select new XElement("Group",
new XAttribute("ID", groupedData.Key),
from g in groupedData
select new XElement("Data",
g.Element("Quantity"),
g.Element("Price")
)
)
);
Console.WriteLine(newData);
Dim doc As XElement = XElement.Load("Data.xml")
Dim newData As XElement = _
<Root>
<%= _
From data In doc.<Data> _
Group By category = data.<Category>(0).Value _
Into groupedData = Group _
Select <Group ID=<%= category %>>
<%= _
From g In groupedData _
Select _
<Data>
<%= g.<Quantity>(0) %>
<%= g.<Price>(0) %>
</Data> _
%>
</Group> _
%>
</Root>
Console.WriteLine(newData)
Este ejemplo genera el siguiente resultado:
<Root>
<Group ID="A">
<Data>
<Quantity>3</Quantity>
<Price>24.50</Price>
</Data>
<Data>
<Quantity>5</Quantity>
<Price>4.95</Price>
</Data>
<Data>
<Quantity>3</Quantity>
<Price>66.00</Price>
</Data>
<Data>
<Quantity>15</Quantity>
<Price>29.00</Price>
</Data>
</Group>
<Group ID="B">
<Data>
<Quantity>1</Quantity>
<Price>89.99</Price>
</Data>
<Data>
<Quantity>10</Quantity>
<Price>.99</Price>
</Data>
<Data>
<Quantity>8</Quantity>
<Price>6.99</Price>
</Data>
</Group>
</Root>