SelectNodes с XPath игнорируя случаи

c# case-insensitive html-agility-pack xpath

Вопрос

У меня есть проблема с поиском элементов в XPath, которая содержит определенную строку, игнорирующую оболочку символов.

Я хочу найти на странице HTML все узлы с идентификатором содержит текст «нижний колонтитул», игнорирующий его запись в верхнем или нижнем регистре.

В моем примере у меня есть другой html-текст:

<div id="footer">some text</div>
<div id="anotherfooter">some text</div>
<div id="AnotherFooter">some text</div>
<div id="AnotherFooterAgain">some text</div>

Мне нужно выбрать все узлы (или любую комбинацию в любом случае со словом «нижний колонтитул» в id) с помощью XPath.

В настоящее время я использую этот xpath, но не работает для идентификаторов UpperCase

"//*[contains(./@id, 'footer')]/@id"

Я выполнил несколько тестов с помощью translate (), но не работает так, как я ожидал.

Есть идеи?

EDIT: Я использую HtmlAgilityPack с работами с версией XPath 1.0.

Принятый ответ

Не уверен, что вы еще это пробовали, но это то, что я делаю для чувствительности к регистру, содержит поиск:

//*[contains(translate(./@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'footer')]/@id

Я видел, что вы нашли свое решение, поэтому я отправляю этот ответ, если у других проблема такая же.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow