2012-05-15 3 views
0

Я работаю над процессом сканирования. Моя программа сканирует веб-сайты через Xpath с помощью HtmlAgilityPack. Мне нужно получить тег src изображения напрямую. Вы можете увидеть мой простой код, ниже которого работает неправильно, спасибо за консультацию!Выберите значение «src» с XPath в HtmlAgilityPack

PS:. Пожалуйста, игнорируйте "Проблема гольца, шаблоны XPath обеспечивается базой данных

Agility.DocumentNode.SelectSingleNode("//img[@id="product_photo"]/@src"); 

И это линия мне нужно сканирование (*...* части показывает блок для извлечения

<img id="product_photo" src="*/images/thumb/4400/10280/st.jpg*"> 

Некоторые страницы предоставляют изображение в метатегах, поэтому .Attributes["src"] не работает.

UPDATE: Y ожно увидеть мой запрос и привести здесь Query

+1

Что делает '// img [@ id =" product_photo "]/@ src' return? Кроме того, вы пробовали с одинарными кавычками: '// img [@ id = 'product_photo']/@ src'? – rishimaharaj

+0

Я также предлагаю использовать «// img [@ id = 'product_photo']/@ src" – Nicolas

+0

Он возвращает объект HtmlNode, но я хочу использовать только src (или может быть содержимое или что-то еще) в виде строки и котировки sinle didn ' т работы. –

ответ

0

Вы можите получить значение «ЦСИ» или любые другие атрибуты при помощи:

Agility.DocumentNode.SelectSingleNode(yourXpath); 

Просто с помощью:

string s=Agility.DocumentNode.SelectSingleNode(yourXpath).value; 

Это потому, что XPath cann't возвращает значение атрибута функцией SelectSingleNode() в классе HtmlAgilityPack. Таким образом, вы должны использовать SelectSingleNode(yourXpath).value или использовать Regex после фишинга, чтобы получить только «src» без внешнего текста.

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