使用c#从xml enclosure标记中提取url值

时间:2016-06-06 11:47:11

标签: c# android xml xamarin feed

我正在尝试提取url的值,它基本上是封装标记中的图像的url,如下所示:

 <enclosure url="http://s3-us-west-1.amazonaws.com/s3cazinnet/2016/06/OZRK_KRAJINA_2016_5525.JPG?mtime=1465158486" length="" type="image/jpeg">

我不想打扰全班,所以我只发布部分代码。这是我试图获取url值的代码的一部分:

if (xmlNode[i].SelectSingleNode("enclosure:url", xmlNameSpaceManager) != null)
{
    var Url = xmlNode[i].Attributes["url"].Value;
    feedItem.Image = Url;
}

我希望使用Klh的UrlImageViewHelper在listview中加载图像,这是我的FeedItemListAdapter类的代码部分:

var imageView = view.FindViewById<ImageView> (Resource.Id.ListviewImage);
Koush.UrlImageViewHelper.SetUrlDrawable (imageView, feedItem.Image);

我没有收到任何错误,但列表视图中没有显示图像。

1 个答案:

答案 0 :(得分:0)

您应该阅读some basic XPath syntax,因为您的表达没有多大意义 - 它正在搜索名称为url且在其中具有命名空间的元素名称空间管理器由前缀example标识。听起来不错吗?

假设你的元素是根元素而且它没有命名空间(它不是你是否只给我们一个片段),那么表达式应该是{{1 }}

完成此操作后,您需要保留参考以搜索该属性的结果。目前,您只是将其丢弃,然后尝试在列表中的某个任意节点上获取enclosure/@url属性。

所以,比如:

url

总而言之,LINQ to XML是比旧的var url = xmlNode[i].SelectSingleNode("enclosure/@url", xmlNameSpaceManager); feedItem.Image = url.Value; API更好的API,而LINQ to XML比使用XPath查询XML要好得多。如果可以的话,我会调查一下。