В проекте я использую Xpath для очистки цены. В этом случае у меня может быть 2 варианта, как получить цену, указанную в следующем запросе:
var xpath = @"substring-after(//div[@class='price'],":")|//span[@class="oldPrice"]";
В коде С#:
HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(html);
XPathNavigator navigator = document.DocumentNode.CreateNavigator();
var eval = navigator.Evaluate(xpath); // here i get error: Expression must evaluate to a node-set.
var expression = navigator.Compile(xpath); // and also here i get error: Expression must evaluate to a node-set.
Я понимаю, что substring-after(//div[@class='price'],":")
- это возвращаемый тип строки. и что //span[@class="oldPrice"]
является возвращаемым типом Node-Set
У вас есть предложение, как мне поступить в этом случае?
а) Должен ли я разделить xpath и разрешить каждую часть, разделенную символом '|' ?
б) Или есть другой способ получить результат, используя комбинированный запрос xpath выше, без разделения строки и проверки каждой части?
c) Пропустил ли я какой-либо другой класс, который делает то, что я ищу?
Надеюсь контекста достаточно.