I'm looking at the example below, and I wonder, after I'm done reading all the image
nodes, how do I get back reading the last_modified_at
node from parent element?
(See my comments in last few lines of code)
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"));
}
//read last_modified_at
//reader.Name evaluates to 'images' at execution time
//reader.NodeType evaluates to 'EndElement' at execution time
}
}
In a similar scenario, I'm trying to achieve the same result successfully accomplished by the answers below unsuccessfully, and fails at the highlighted line (41) by returning false.
The problem is going from the last abbr
to intervals
. And here is where I can't see the difference from the example presented above.
Update Here is a complete example.
As last_modified_at follows the images you can do it as you did it some lines up:
r.ReadToFollowing("last_modified_at");
string lastModified = r.ReadElementContentAsString("last_modified_at", r.NamespaceURI);