Я использую XmlReader.Create для извлечения данных из XML-файла RSS. Тогда я ставлю эти данные в DataSet и связывание его с ListView:Как получить атрибут XML с помощью XmlReader.Create?
XmlReader xmlReader = XmlReader.Create(this.RssUrl);
XmlDataDocument xdoc = new XmlDataDocument();
xdoc.DataSet.ReadXml(xmlReader, XmlReadMode.InferSchema);
Проблема состоит в том, что одна из областей я пытаюсь получить в атрибуте. Как получить атрибут «url» из «media: thumbnail» ниже?
<item>
<title>Some Title</title>
<description>Content goes here...</description>
<link>http://www.mydomain.com?id=439</link>
<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>
Я привязать его, как это, но СМИ: миниатюра пустой очевидно потому, что мне нужно, чтобы получить атрибут как некоторые:
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"]);
}
Может кто-нибудь помочь с этим?
Не знаете, в чем вопрос. В любом случае, для любой работы Xml в C# мой совет - перейти на новый Linq 'XElement' api. Они намного проще, чем остальные. – 2010-08-21 19:02:14
+1 для совета jdv. 'XmlReader' полезен, когда вам нужно читать * огромные * количества XML, но RSS-канал вряд ли будет очень большим. LINQ to XML FTW. –
+1 для комментария jdv. Перейти к LINQ to XML! – davehauser