C# XMLreader and child nodes C# XMLreader and child nodes xml xml

C# XMLreader and child nodes


You should read to the <images> element, then read to the first <image> descendant, and then read to the next sibling until you can't anymore. The code below shows how this can be done.

public class StackOverflow_6473251{    public static void Test()    {        string xml = @"               <movies>             <movie>               <score>8.582207</score>               <popularity>3</popularity>               <translated>true</translated>               <adult>false</adult>               <language>en</language>               <original_name>Transformers</original_name>               <name>Transformers</name>               <alternative_name>The Transformers</alternative_name>               <type>movie</type>               <id>1858</id>               <imdb_id>tt0418279</imdb_id>               <url>http://www.themoviedb.org/movie/1858</url>               <votes>28</votes>               <rating>7.2</rating>               <certification>PG-13</certification>               <overview>The Earth is caught in the middle of an intergalactic war /overview>               <released>2007-07-04</released>               <images>                    <image type=""poster"" url=""http://hwcdn.themoviedb.org/posters/304/4bc91347017a3c57fe007304/transformers-original.jpg"" size=""original"" id=""4bc91347017a3c57fe007304""/>                    <image type=""poster"" url=""http://hwcdn.themoviedb.org/posters/304/4bc91347017a3c57fe007304/transformers-mid.jpg"" size=""mid"" id=""4bc91347017a3c57fe007304""/>                    <image type=""poster"" url=""http://hwcdn.themoviedb.org/posters/304/4bc91347017a3c57fe007304/transformers-cover.jpg"" size=""cover"" id=""4bc91347017a3c57fe007304""/>                    <image type=""poster"" url=""http://hwcdn.themoviedb.org/posters/304/4bc91347017a3c57fe007304/transformers-thumb.jpg"" size=""thumb"" id=""4bc91347017a3c57fe007304""/>                    <image type=""backdrop"" url=""http://hwcdn.themoviedb.org/backdrops/2ce/4bc91339017a3c57fe0072ce/transformers-original.jpg"" size=""original"" id=""4bc9133s9017a3c57fe0072ce""/>                    <image type=""backdrop"" url=""http://hwcdn.themoviedb.org/backdrops/2ce/4bc91339017a3c57fe0072ce/transformers-poster.jpg"" size=""poster"" id=""4bc91339017a3c57fe0072ce""/>                    <image type=""backdrop"" url=""http://hwcdn.themoviedb.org/backdrops/2ce/4bc91339017a3c57fe0072ce/transformers-thumb.jpg"" size=""thumb"" id=""4bc91339017a3c57fe0072ce""/>               </images>             <last_modified_at>2010-04-26 03:26:14</last_modified_at>       </movie>     </movies>";        XmlReader r = XmlReader.Create(new StringReader(xml));        r.ReadToFollowing("original_name");        string title = r.ReadElementContentAsString("original_name", r.NamespaceURI);        r.ReadToFollowing("images");        int imageCount = 0;        if (r.ReadToDescendant("image"))        {            do            {                Console.WriteLine("Image {0}", ++imageCount);                Console.WriteLine("  Type: {0}", r.GetAttribute("type"));                Console.WriteLine("  URL: {0}", r.GetAttribute("url"));                Console.WriteLine("  Size: {0}", r.GetAttribute("size"));                Console.WriteLine("  ID: {0}", r.GetAttribute("id"));            } while (r.ReadToNextSibling("image"));        }    }}


Try making use of these objects:

XmlDocument xml = new XmlDocument();XmlNodeList nodes = xml.ChildNodes;XmlNode node = nodes[0];XmlNode childNode = node.ChildNodes[0];