Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2015, 11:11
Аватар для MappeD
Новичок на форуме
Отправить личное сообщение для MappeD Посмотреть профиль Найти все сообщения от MappeD
 
Регистрация: 21.05.2015
Сообщений: 3

Поиск текста в исходном коде html , исключая другие варианты значений

Суть задачи: Найти на странице
Далее часть кода примерной страницы:
<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() дабы немного рандомизировать выборку значений - ничего не вышло. Тяжёлые наркотики не употребляю , заранее спасибо за помощь.

Последний раз редактировалось MappeD, 21.05.2015 в 11:41.
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2015, 12:18
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

document.evaluate('//node()[text()="0"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2015, 12:33
Аватар для MappeD
Новичок на форуме
Отправить личное сообщение для MappeD Посмотреть профиль Найти все сообщения от MappeD
 
Регистрация: 21.05.2015
Сообщений: 3

Сообщение от devote Посмотреть сообщение
document.evaluate('//node()[text()="0"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
Спасибо! Большее человеческое. А как Вы заставили в node воспринимать только значение 0 ? Если не сложно, для чайников
Что обозначает это //node() ?
Ответить с цитированием
  #4 (permalink)  
Старый 21.05.2015, 13:07
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от MappeD
Что обозначает это //node() ?
node() - Возвращает все узлы и текстовые в том числе.

Хотя для вашего случая достаточно использовать * (звездочку) которая возвращает только элементы без текстовых узлов. Что-то вроде:
//*[text()="0"]

Сообщение от MappeD
А как Вы заставили в node воспринимать только значение 0 ?
Для этого используется функция text() которая возвращает текст текущей ноды, далее сравниваем текст с шаблоном (в нашем случае со строкой "0")
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 21.05.2015, 14:57
Аватар для MappeD
Новичок на форуме
Отправить личное сообщение для MappeD Посмотреть профиль Найти все сообщения от MappeD
 
Регистрация: 21.05.2015
Сообщений: 3

Понял, спасибо ещё раз.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск текста в исходном коде Avalanche Firefox/Mozilla 6 09.07.2010 18:31
Поиск слова в исходном коде html страницы klsorat2010 Ваши сайты и скрипты 1 20.05.2010 23:46