Я делаю кучу document.evaluate, затем повторяя каждый результат с помощью цикла for на result.snapshotLength
.Слияние XPathРезультаты из document.evaluate
Поскольку я делаю то же самое внутри каждого цикла (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
Спасибо за вашу помощь!
'Я читал это: пятый параметр может использоваться для объединения результатов двух запросов XPath.« Да, это, безусловно, [должно быть так] (http://help.dottoro.com/ljruhkuj. PHP). К сожалению, найти пример использования затруднительно. 'Но это не работает (хотя у меня нет журнала ошибок, он просто не работает). Что именно произошло? Объект результатов содержит только первый набор? Только второй сет? Было ли это пусто? (Очевидно, вопрос мертв, но я прошу будущих читателей.) – Synetech