2013-05-02 5 views
1

Я хочу выделить узлы, охватываемые данным XPath, в источнике HTML-страницы.Выделите узлы, покрытые XPath

Я смотрел в HtmlUnit, не нашел ничего в API.

В настоящее время, я имею в виду сделать это следующим образом:

  1. Get XPath и получить страницу-источник.
  2. Перерыв XPath на меньшие куски и сохранение их в Xpath_chunk [].
  3. Применить кусок из Xpath_chunk [] начиная с 0.
  4. Обновите свойство css каждого узла, найденного каждым фрагментом (любое изменение, которое отличает текст).
  5. Теперь добавьте следующий кусок и укрепите его с помощью тока.
  6. Перейти к шагу 3.

Таким образом, я буду посещать все узлы, охватываемые Xpath. С некоторыми изменениями я могу удалить те элементы, которые были излишне выделены.

Это слишком сложно. Есть ли способ сделать это ?

ответ

1

Недавно я сделал рудиментарную реализацию с использованием WebEngine + WebView JavaFX. Зарегистрируйте DOM-прослушиватель на всех узлах документа загруженного веб-сайта, чтобы вы могли прослушивать клики по этим узлам. При нажатии измените стиль узла и добавьте CSS. WebView будет отображать изменения и отображать страницу правильно.

Документ, который возвращает WebEngine, также можно получить с помощью XPath (это документ w3d), чтобы вы могли пересечь его и изменить все узлы, с которыми вы сталкиваетесь (или использовать узел, который наиболее удален вниз, а затем перемещаться вверх, используя getParent(), а также изменить каждого родителя).

+0

Я хочу создать что-то вроде Firebug, но не как плагин для Firefox. Я хочу запустить его как веб-приложение. –

+0

Очень интересно - можете ли вы поделиться фрагментом кода? –

+0

Ну, это много кода, я не знаю, могу ли я легко создать выбор, который показывает, что это значит. Во всяком случае, в конце WebEngine JavaFX были некоторые фундаментальные недостатки (вы не можете синхронно загружать веб-страницы для извлечения своего домена с помощью веб-сайта), поэтому я решил переделать проект в GWT и работать прямо на веб-странице. Вообще: 1) служба RPC загружает веб-страницы на стороне сервера 2), что веб-страница загружается в HTMLPanel 3) DOMlisteners убедитесь, что мы можем слушать выборов элемента 4) изменение стиля элемента является легко сделать – CountZukula

Смежные вопросы