@fanat_96

Как исключить класс из xpath-запроса в C#?

Здравствуйте.
Есть такие xpath-запросы:
outputHtml = HD.DocumentNode.SelectNodes("//div[@class='reader-text font-size-medium']");
outputHtml = HD.DocumentNode.SelectNodes("//div[@style='display: block; text-align: justify; margin-bottom: 12px;']");


Они получают содержимое div, но среди него есть и такая конструкция:
<div class="reader-pagination"><a class="pull-left chapter-btn" id="link-left" href="/reader/ne-princ-no-soidesh-b34996?c=276330">Пред. часть</a><div class="col-xs-offset-4 pag-center"><span class="current">1</span><a onclick="Reader.goTo(2)">2</a><span class="dots">...</span><a class="first" onclick="Reader.goTo(4)">4</a></div><a class="pull-right" id="link-right" onclick="Reader.goTo(2)"><i class="glyphicon glyphicon-chevron-right"></i> Вперед</a><div class="clearfix"></div></div>

Вот мне нужно как-то сделать, чтобы в те два запроса, которые выше, не попадало содержимое div с классом reader-pagination.
  • Вопрос задан
  • 491 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Roman-Fov
Сложно ответить на этот вопрос без полного документа и более точного понимания задачи. Выбрать всё кроме определённого элемента можно исключив его в xpath.
Те изменить принцип обработки документа. Обрабатывать не сам элемент элемент1, а все дочение элементы к элементу1.

Допустим есть документ:
<root>
<elem attr="a">a</elem>
<elem attr="b">b</elem>
<elem attr="c">c</elem>
</root>


По запросам вижу вы пытаетесь сделать примерно такое (выбрать всё, что есть в элементе):
/root
И получите текстом:
<root>
<elem attr="a">a</elem>
<elem attr="b">b</elem>
<elem attr="c">c</elem>
</root>

Но можно выбрать только содержимое + наложив определённые ограничения:
/root/*[@attr != 'b']
Результат:
<elem attr="a">a</elem>
<elem attr="c">c</elem>

С этим уже удобнее будет работать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы