Поиск текста в исходном коде html , исключая другие варианты значений
:help:
Суть задачи: Найти на странице Далее часть кода примерной страницы: <a name="top">100</a> <a name="top">10</a> <a name="top">0</a> Вот эту часть >0< и записать её в node узел. Пробуем так : var xpathResult = document.evaluate("(//text()[contains(.,'>0<')])[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); var node=xpathResult.singleNodeValue.textContent; alert(node); Не получается Пробуем искать по тексту только 0 var xpathResult = document.evaluate("(//text()[contains(.,'0')])[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); var node=xpathResult.singleNodeValue.textContent; alert(node); Разумеется т.к. FIRST_ORDERED_NODE_TYPE , а первым у нас идёт по порядку 100 node будет равен 100. А заветный 0 , проигнорирует. Итак , вопрос! а) Как найти часть кода страницы? >0</a> и записать в node. или ежели это не возможно средствами JS. Как исключить из поиска 100 и 10, которые идут перед заветным нулём. Скажу сразу пробовал UNORDERED_NODE_ITERATOR_TYPE с методом iterateNext() дабы немного рандомизировать выборку значений - ничего не вышло. Тяжёлые наркотики не :no: употребляю , заранее спасибо за помощь. ;) |
document.evaluate('//node()[text()="0"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) |
Цитата:
Что обозначает это //node() ? |
Цитата:
Хотя для вашего случая достаточно использовать * (звездочку) которая возвращает только элементы без текстовых узлов. Что-то вроде: //*[text()="0"] Цитата:
|
Понял, спасибо ещё раз. :write:
|
Часовой пояс GMT +3, время: 15:10. |