Vorgehensweise: Generieren von Textdateien aus XML (C#)How to: Generate Text Files from XML (C#)

In diesem Beispiel wird gezeigt, wie Sie aus einer XML-Datei eine CSV-Datei generieren k├Ânnen.This example shows how to generate a comma-separated values (CSV) file from an XML file.

BeispielExample

Die C#-Version dieses Beispiels verwendet die Methodensyntax und den Aggregate-Operator, um aus einem XML-Dokument in einem einzelnen Ausdruck eine CSV-Datei zu generieren.The C# version of this example uses method syntax and the Aggregate operator to generate a CSV file from an XML document in a single expression. Weitere Informationen finden Sie unter Abfragesyntax und Methodensyntax in LINQ.For more information, see Query Syntax and Method Syntax in LINQ.

In diesem Beispiel wird das folgende XML-Dokument verwendet: Beispiel-XML-Datei: Kunden und Bestellungen (LINQ to XML).This example uses the following XML document: Sample XML File: Customers and Orders (LINQ to XML).

XElement custOrd = XElement.Load("CustomersOrders.xml");  
string csv =  
    (from el in custOrd.Element("Customers").Elements("Customer")  
    select  
        String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}{10}",  
            (string)el.Attribute("CustomerID"),  
            (string)el.Element("CompanyName"),  
            (string)el.Element("ContactName"),  
            (string)el.Element("ContactTitle"),  
            (string)el.Element("Phone"),  
            (string)el.Element("FullAddress").Element("Address"),  
            (string)el.Element("FullAddress").Element("City"),  
            (string)el.Element("FullAddress").Element("Region"),  
            (string)el.Element("FullAddress").Element("PostalCode"),  
            (string)el.Element("FullAddress").Element("Country"),  
            Environment.NewLine  
        )  
    )  
    .Aggregate(  
        new StringBuilder(),  
        (sb, s) => sb.Append(s),  
        sb => sb.ToString()  
    );  
Console.WriteLine(csv);  

Dieser Code erzeugt die folgende Ausgabe:This code produces the following output:

GREAL,Great Lakes Food Market,Howard Snyder,Marketing Manager,(503) 555-7555,2732 Baker Blvd.,Eugene,OR,97403,USA  
HUNGC,Hungry Coyote Import Store,Yoshi Latimer,Sales Representative,(503) 555-6874,City Center Plaza 516 Main St.,Elgin,OR,97827,USA  
LAZYK,Lazy K Kountry Store,John Steel,Marketing Manager,(509) 555-7969,12 Orchestra Terrace,Walla Walla,WA,99362,USA  
LETSS,Let's Stop N Shop,Jaime Yorres,Owner,(415) 555-5938,87 Polk St. Suite 5,San Francisco,CA,94117,USA  

Siehe auchSee Also

Projektionen und Transformationen (LINQ to XML) (C#)Projections and Transformations (LINQ to XML) (C#)