예제 #1
0
        public static void Sample_ReadXml_Books()
        {
            string xml    = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<bookstore xmlns=""http://www.contoso.com/books"">
    <book genre=""autobiography"" publicationdate=""1981-03-22"" ISBN=""1-861003-11-0"">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre=""novel"" publicationdate=""1967-11-17"" ISBN=""0-201-63361-2"">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre=""philosophy"" publicationdate=""1991-02-15"" ISBN=""1-861001-57-6"">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore> ";
            var    xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(xml);

            using (var reader = new XmlAdapter(xmlDoc))
            {
                reader.XPath = "/bookstore/book";
                reader.AutoExtractNamespaces = true;

                //var dataTable = reader.ReadAllData();

                //var dynObjects = reader.ReadAllDataAs<ExpandoObject>();

                var books = reader.ReadAllDataAs <Book>();

                using (var writer = new XmlAdapter())
                {
                    writer.XPath    = "/bookstore/book";
                    writer.FileName = @"C:\Temp\out.xml";
                    writer.WriteDataFrom <Book>(books, true);
                }
            }
        }