SELECTSINGLENODE и SELECTNODES XPATH SYNTAXC#

Место общения программистов C#
Ответить
Anonymous
 SELECTSINGLENODE и SELECTNODES XPATH SYNTAX

Сообщение Anonymous »

Мой вопрос очень похож на этот xmlnode.selectsinglenode Syntax для поиска в узле в C#

Я пытаюсь использовать HTML Agility Pack, чтобы потянуть цену/состояние/судно ... вот URL, который я считываю: http://www.amazon.com/gp/offer-listing/ ... dition=all

Here's a snippet of my code:


Код: Выделить всё

    string results = "";
var w = new HtmlWeb();
var doc = w.Load(url);
var nodes = doc.DocumentNode.SelectNodes("//div[@class='a-row a-spacing-medium olpOffer']");

if (nodes != null)
{
foreach (HtmlNode item in nodes)
{
var price = item.SelectSingleNode(".//span[@class='a-size-large a-color-price olpOfferPrice a-text-bold']").InnerText;
var condition = item.SelectSingleNode(".//h3[@class='a-spacing-small olpCondition']").InnerText;
var price_shipping = item.SelectSingleNode("//span[@class='olpShippingPrice']").InnerText;
results += "price " + price + " condition " + condition + " ship " + price_shipping + "\r\n";
}
}
return results;
Независимо от того, какая комбинация я пытаюсь .// и. и ./ и / etc ... Я не могу получить то, что я хочу (только сейчас пытаюсь изучить XPaths), в настоящее время он возвращает только 1 -й пункт снова и снова, как и оригинальный вопрос, который я ссылался ранее. Я думаю, что мне не хватает фундаментального понимания того, как выбирают узлы, и /или что считается узлом. (Price_shipping) к «.///» абсолютно никакой информации не получает от чего -либо. Это должно быть связано с тем, что нет даже цены доставки, и этот промежуток опущен. Как мне это справиться? Я попробовал, если Price_shipping! = Null. < /P>



Обновление < /p>



Решено. Я удалил «.InnerText» из Price_shipping, что вызывает проблемы, когда это было ноль ... затем я сделал нулевую проверку, а затем было безопасно использовать .innerText.

Подробнее здесь: https://stackoverflow.com/questions/181 ... ath-syntax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»