Vorgehensweise: Erstellen einer Hierarchie durch Gruppierung
Dieses Beispiel zeigt, wie Sie Daten gruppieren und anschließend anhand der Gruppierung XML generieren können.
Beispiel
Dieses Beispiel gruppiert die Daten zuerst nach einer Kategorie, woraufhin eine neue XML-Datei generiert wird, in der die XML-Hierarchie die Gruppierung widerspiegelt.
In diesem Beispiel wird das XML-Dokument in XML-Beispieldatei: Numerische Daten (LINQ to XML) verwendet.
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)
Dieses Beispiel erzeugt die folgende Ausgabe:
<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>