Я делаю кучу document.evaluate, а затем перебираю каждый результат с помощью цикла for на result.snapshotLength
.
Поскольку я делаю одно и то же внутри каждого цикла (thisDiv.parentNode.removeChild
), я хотел бы сделать только один цикл.
Я читал это:
Пятый параметр можно использовать для объединения результатов двух запросов XPath. Передайте результат предыдущего вызова document.evaluate, и он вернет объединенные результаты обоих запросов.
Итак, я попытался:
comDivs = document.evaluate(
"//div[@class='class name 1']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
ggDivs = document.evaluate(
"//div[@class='class name 2']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
comDivs);
Но это не работает (хотя у меня нет журнала ошибок, он просто не работает).
Каков правильный способ сделать это? Могу ли я запускать разные запросы XPath и объединять результаты? Или есть способ передать регулярные выражения или какое-то чередование в сам запрос?
Код, который у меня есть на данный момент, находится по адресу: http://userscripts.org/scripts/review/58939 а>
Спасибо за вашу помощь !
I've read that : The fifth parameter can be used to merge the results of two XPath queries.
Да, это, безусловно, должно быть так. К сожалению, найти пример использования оказывается сложно.But this doesn't work (although i don't have an error log, it just doesn't work).
Что именно произошло? Объект результатов содержал только первый набор? Только второй комплект? Он был пуст? (Очевидно, что вопрос мертв, но я прошу будущих читателей.) - person Synetech   schedule 07.07.2014