【发布时间】:2010-08-21 18:56:29
【问题描述】:
我正在使用 XmlReader.Create 从 RSS xml 文件中检索数据。然后我将这些数据放入 DataSet 并将其绑定到 ListView:
XmlReader xmlReader = XmlReader.Create(this.RssUrl);
XmlDataDocument xdoc = new XmlDataDocument();
xdoc.DataSet.ReadXml(xmlReader, XmlReadMode.InferSchema);
问题是我试图获取的字段之一是在一个属性中。如何从下面的“media:thumbnail”中获取“url”属性?
<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>
我是这样绑定的,但是 media:thumbnail 显然是空的,因为我需要以某种方式获取属性:
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"]);
}
有人可以帮忙吗?
【问题讨论】:
-
不确定这里的问题是什么。无论如何,对于 C# 中的任何 Xml 工作,我的建议是切换到新的 Linq
XElementapi。他们比其他人容易得多。 -
+1 获取 jdv 的建议。
XmlReader在您需要阅读 大量 量的 XML 时很有用,但 RSS 提要不太可能非常大。 LINQ to XML FTW。 -
+1 表示 jdv 的评论。使用 LINQ to XML!