Я хочу экспортировать свой рабочий план Asics в iCal, и поскольку Asics не предлагает эту услугу, я решил создать небольшой скребок для личного пользования.Я хочу взять все запланированные запуски из моего плана и сгенерировать канал iCal на его основе.Я использую C # и Html Agility Pack.
Что я хочу сделать, так это перебрать все мои запланированные запуски (они являются узлами div).Затем я хочу выбрать несколько разных узлов с моими узлами выполнения.Мой код выглядит так:
foreach (var run in doc.DocumentNode.SelectSingleNode("//div[@id='scheduleTable']").SelectNodes("//div[@class='pTdBox']"))
{
number++;
string date = run.SelectSingleNode("//div[@class='date']").InnerText;
string type = run.SelectSingleNode("//span[@class='menu']").InnerHtml;
string distance = run.SelectSingleNode("//span[@class='distance']").InnerHtml;
string description = run.SelectSingleNode("//div[@class='description']").InnerHtml;
ViewData["result"] += "Dato: " + date + "<br />";
ViewData["result"] += "Tyep: " + type + "<br />";
ViewData["result"] += "Distance: " + distance + "<br />";
ViewData["result"] += "Description: " + description + "<br />";
ViewData["result"] += run.InnerHtml.Replace("<", "<").Replace(">", ">") + "<br />" + "<br />" + "<br />";
}
Моя проблема в том, что run.SelectSingleNode("//div[@class='date']").InnerText
не выбирает узел с данным XPath в данном узле выполнения.Он выбирает первый узел, соответствующий XPath во всем документе.
Как выбрать один узел с данным XPath в текущем узле?
Спасибо.
Обновление
Я попытался обновить строку XPath до следующего:
string date = run.SelectSingleNode(".div[@class='date']").InnerText;
Это должно выбрать элемент <div class="date"></div>
в текущем узле, верно?Ну, я попробовал это, но получил эту ошибку:
Выражение должно вычисляться как набор узлов.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.Xml.XPath.XPathException: выражение должно оцениваться как набор узлов.
Есть предложения?