我正在尝试提取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);
我没有收到任何错误,但列表视图中没有显示图像。
答案 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要好得多。如果可以的话,我会调查一下。