Csharp/C Sharp/XML LINQ/XDocument transformation

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Transforming an XML Document

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Xml.Linq; public class MainClass {

   public static void Main() {
       XDocument xDocument = new XDocument(
         new XElement("Books",
           new XElement("Book",
             new XAttribute("type", "Author"),
             new XElement("FirstName", "A"),
             new XElement("LastName", "B")),
           new XElement("Book",
             new XAttribute("type", "Author"),
             new XElement("FirstName", "C"),
             new XElement("LastName", "D"))));
       Console.WriteLine("Here is the original XML document:");
       Console.WriteLine("{0}{1}{1}", xDocument, System.Environment.NewLine);
   }

}

</source>


XDocument transformation demo

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Xml.Xsl; using System.IO; using System.Xml.Linq; public class MainClass {

   public static void Main() {
       XDocument xDocument = new XDocument(
         new XElement("Books",
           new XElement("Book",
             new XAttribute("type", "Author"),
             new XElement("FirstName", "A"),
             new XElement("LastName", "B")),
             new XElement("Book",
           new XAttribute("type", "Author"),
             new XElement("FirstName", "C"),
             new XElement("LastName", "D"))));
       XDocument transformedDoc = new XDocument();
       using (XmlWriter writer = transformedDoc.CreateWriter()) {
           XslCompiledTransform transform = new XslCompiledTransform();
           transform.Load(XmlReader.Create(new StringReader("c:\\your.xls")));
           transform.Transform(xDocument.CreateReader(), writer);
       }
       Console.WriteLine(transformedDoc);
   }

}

</source>