2016-06-06 3 views
0

Я пытаюсь извлечь значение URL, который является в основном URL образа в корпус тега что-то вроде этого:Извлечение значения URL из XML шкафа тег с C#

<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; 
} 

Чем я хочу, чтобы загрузить изображения, что в ListView с помощью UrlImageViewHelper по Коуш здесь является частью кода из моего класса FeedItemListAdapter:

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

У меня нет ошибок, но изображения не отображаются в списке.

ответ

0

Вы должны, вероятно, пойти и прочитать о some basic XPath syntax, как ваше выражение не делает много смысла - он ищет элемент с именем url, который имеет пространство имен в менеджере пространства имен, идентифицированной префиксом example. Правильно ли это звучит?

Предполагая, что ваш элемент является корневым элементом, и у него нет пространства имен (дело не в том, предоставили ли вы нам только фрагмент), тогда выражение должно быть enclosure/@url.

После того, как вы это сделали, вам понадобится сохранить ссылку на результат поиска этого атрибута. На данный момент вы просто отбрасываете его, а затем пытаетесь получить атрибут url на каком-то произвольном узле в своем списке.

Так, что-то вроде:

var url = xmlNode[i].SelectSingleNode("enclosure/@url", xmlNameSpaceManager); 
feedItem.Image = url.Value; 

Это все сказанное, LINQ к XML является гораздо лучше, чем API старого XmlDocument API, и LINQ к XML гораздо лучше использовать для выполнения запросов к XML, чем XPath. Если можно, я бы посмотрел на это.

+0

Спасибо за ответ и советы. Все остальное работает хорошо, я просто столкнулся с проблемами с изображениями. Это немного старый проект, начатый пару лет назад, и я просто продолжаю использовать тот же путь. Спасибо, сэр. – Yupi

Смежные вопросы