- Регистрация
- 23.11.2013
- Сообщения
- 149
- Благодарностей
- 73
- Баллы
- 28
Вот с чем столкнулся: беру строки таблицы <tr></tr> на страничке в семейство Html Elements, затем перебираю эти элементы и выпарсиваю данные из ячеек через FindChildByXPath.
Так как я считаю, что контекст поиска уже ограничен, то использую в тексте XPath две косых в начале, например:
...но дети ищутся почему-то по всему документу! В данном случае - при каждом шаге цикла foreach получаем HtmlElement из первого экземпляра коллекции. Почему так?
Если ставлю точку перед началом пути, то всё работает нормально:
Вопрос: а какой смысл тогда делать семейство строк таблицы, если оно ничего не ограничивает и поиск в итоге ведётся по всему документу? Я изначально пытаюсь таким образом сэкономить вычислительные ресурсы.
Код:
HtmlElementCollection PhraseBlocks = BudgetDoc.FindElementsByAttribute("tr", "id", @"tr.*", "regexp");
foreach (HtmlElement PhraseBlock in PhraseBlocks.Elements) {}
Код:
.FindChildByXPath(".//div[@class='my_div']/div/em/a",0);
Если ставлю точку перед началом пути, то всё работает нормально:
Код:
.FindChildByXPath(".//div[@class='my_div']/div/em/a",0);