Есть ли способ получить какой-то XPATH для каждого слова, которое соответствует заданному регулярному выражению? Я имею в виду слова, отображаемые навигатором для пользователя. Таким образом, я мог бы манипулировать HTML, соответствующим каждому слову в отдельности.Получить XPATH слов HTML, которые соответствуют регулярному выражению
2
A
ответ
1
There's not a unique XPath to a node, но вот решение, которое использует функцию cssPath
от this answer, чтобы вернуть путь к CSS элемента, содержащего текст, соответствующий регулярному выражению.
var cssPath = function(el) {
if (!(el instanceof Element))
return;
var path = [];
while (el.nodeType === Node.ELEMENT_NODE) {
var selector = el.nodeName.toLowerCase();
if (el.id) {
selector += '#' + el.id;
path.unshift(selector);
break;
} else {
var sib = el,
nth = 1;
while (sib = sib.previousElementSibling) {
if (sib.nodeName.toLowerCase() == selector)
nth++;
}
if (nth != 1)
selector += ":nth-of-type(" + nth + ")";
}
path.unshift(selector);
el = el.parentNode;
}
return path.join(" > ");
}
var startElem = document.body;
var items = startElem.getElementsByTagName("*");
for (var i = items.length; i--;) {
var match = items[i].innerHTML.match(/fox/);
if (match) {
var matched = document.createElement('div');
matched.innerHTML = cssPath(items[i]);
document.getElementById("matches").appendChild(matched);
}
}
<div>The quick brown fox</div>
<div>jumped over the lazy dog.</div>
<div>The slow orange ocelot</div>
<div>crawled under the quick fox.</div>
<hr>
<h4>Matches /fox/</h4>
<div id="matches"></div>
Смежные вопросы
- 1. Capture всех группы, которые соответствуют регулярному выражению
- 2. Scrapy следующие ссылки, которые соответствуют регулярному выражению
- 3. печать только части, которые соответствуют регулярному выражению
- 4. Найти символы, которые соответствуют регулярному выражению Установят
- 5. Заменить все вхождения, которые соответствуют регулярному выражению
- 6. php собирает все значения, которые соответствуют регулярному выражению
- 7. Как сохранить части строки, которые соответствуют регулярному выражению в r?
- 8. Соответствие Java регулярному выражению слов
- 9. Как отфильтровать элементы, которые не соответствуют регулярному выражению?
- 10. Сохраняя только значения, которые соответствуют регулярному выражению в файле
- 11. Как отобразить список символов, которые не соответствуют регулярному выражению?
- 12. Поиска полей, которые не соответствуют регулярному выражению в MongoMapper
- 13. XSLT удалить элементы, которые не соответствуют регулярному выражению
- 14. Как удалить строки из файла, которые не соответствуют регулярному выражению?
- 15. Удалить записи, которые соответствуют регулярному выражению с помощью sed
- 16. Игнорировать электронные письма, которые соответствуют регулярному выражению в Postgres
- 17. Удалить элементы из массива, которые не соответствуют регулярному выражению
- 18. Удалить все строки, которые не соответствуют регулярному выражению в Notepad ++
- 19. Удалить фрахтователей, которые не соответствуют динамическому регулярному выражению
- 20. применить регулярное выражение на множество строки, которые соответствуют регулярному выражению
- 21. Поиск тех частей строки, которые не соответствуют регулярному выражению
- 22. Почему пустые строки соответствуют этому регулярному выражению?
- 23. Подсчитайте количество узлов, которые соответствуют заданному выражению XPath в XmlSpy
- 24. Альтернативы регулярному выражению для HTML
- 25. Список всех слов, соответствующих регулярному выражению
- 26. Как получить элементы хеша, чьи ключи соответствуют заданному регулярному выражению?
- 27. Список всех шаблонов, которые соответствует регулярному выражению
- 28. Получить hrefs, которые соответствуют выражению регулярных выражений, используя PHP и XPath
- 29. XPath/PHP - индекс возврата определенного тега, который соответствует регулярному выражению
- 30. Помощь по регулярному выражению
Самое простое решение, я могу думать о том, будет использовать JQuery в [ ': содержит()'] селектор (https://api.jquery.com/contains-selector/). Конечно, это только если вы используете jQuery. – Hatchet
Видимый, в отличие от чего? Что вы подразумеваете под «DOM path»? Вы имеете в виду выражение типа XPath? Что вы собираетесь с этим делать? Кстати, фрагменты текста, такие как слово, не адресуются никакими средствами, будь то XPath или селектор CSS. Оба адресованы только ** элементам **. –
@torazaburo да, я имею в виду это. Что делать, если я разбираю слова и преобразую их в элементы? Будет ли это слишком много времени? – mochomecha