views:

45

answers:

1

I am using XmlReader.Create to retrieve data from an RSS xml file. Then I am putting this data into a DataSet and binding it to a ListView:

XmlReader xmlReader = XmlReader.Create(this.RssUrl);
XmlDataDocument xdoc = new XmlDataDocument();
xdoc.DataSet.ReadXml(xmlReader, XmlReadMode.InferSchema);

The problem is that one of the fields I am trying to get is in an attribute. How do I get the "url" attribute from "media:thumbnail" below?

<item> 
  <title>Some Title</title> 
  <description>Content goes here...</description> 
  <link>http://www.mydomain.com?id=439&lt;/link&gt; 
  <guid>453252362</guid> 
  <pubDate>Sat, 21 Aug 2010 11:00:00 GMT</pubDate> 
  <media:thumbnail url="http://www.mydomain.com/catalog/1111tn.jpg" /> 
  <media:content url="http://www.mydomain.com/catalog/1111.jpg" /> 
</item> 

I am bind it like this, but the media:thumbnail is null obviously because I need to get the attribute some how:

void singleItem_DataBinding(object sender, System.EventArgs e)
{
    Label singleItem = (Label)sender;
    singleItem.Text = String.Format(@"                    
        <div class=""rlvI content"">
            <div class=""image"">
                <a href=""{0}""><img src=""{1}"" alt=""{2}""></a>
            </div>
            <p>
                <span class=""title"">{2}</span><br />
                {3}
            </p>
        </div>",
        ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["link"],
        ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["media:thumbnail"],
        ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["title"],
        ((singleItem.NamingContainer as RadListViewDataItem).DataItem as DataRowView)["description"]);
}

Can anyone help with this?

A: 

How do I get the "url" attribute from "media:thumbnail" below?

You need to read through the document (while (xmlReader.Read() {...}) until you get to the element with the attribute on it. Then you can use methods like ReadAttributeValue.

In the read loop you can match on node type, node name and namespace to ensure you have the right element.

Richard