2013-05-02 40 views
1

我想突出顯示HTML頁面源中給定XPath覆蓋的節點。XPath覆蓋的高亮節點

我期待在HtmlUnit中找不到API中的任何東西。

目前,我想這樣做以下方式:

  1. 獲取XPath和獲取頁面源。
  2. 將XPath分解爲更小的塊並將它們存儲在Xpath_chunk []中。
  3. 從0開始應用從Xpath_chunk []開始的塊。
  4. 更新每個塊找到的每個節點的css屬性(區分文本的任何更改)。
  5. 現在添加下一塊,並與當前連接。
  6. 轉到步驟3

這樣,我將參觀與XPath覆蓋所有節點。隨着一些更改,我可以刪除那些不必要的突出顯示的元素。

這太複雜了。有沒有辦法做到這一點 ?

回答

1

我最近使用JavaFX的WebEngine + WebView做了一個基本的實現。將DOM監聽器註冊到加載的網站文檔的所有節點,以便您可以聽取對這些節點的點擊。點擊時,更改節點的樣式並添加一些CSS。 WebView將反映更改並正確呈現頁面。

WebEngine返回的文檔也可以使用XPath(它是一個w3d文檔)進行訪問,因此您可以遍歷它並修改遇到的所有節點(或者使用最遠的節點,然後使用getParent (),並修改每個父項)。

+0

我想創建類似Firebug的東西,但不是Firefox插件。我想將它作爲Web應用程序運行。 – 2013-05-02 12:30:15

+0

非常有趣 - 你能分享一段代碼嗎? – 2013-06-10 08:06:00

+0

嗯,這是很多代碼,我不知道我是否可以輕鬆創建一個選擇來顯示它的內容。無論如何,最終JavaFX的WebEngine存在一些根本性缺陷(您無法同步加載網頁以通過web引擎檢索它們的dom),所以我選擇在GWT中重新構建項目並直接在網頁中工作。 一般: 1)RPC服務下載上的網頁是在HTMLPanel加載服務器端 2)網頁 3)DOMlisteners確保我們可以聽改變元素的風格元素的 4的選擇)容易做到 – CountZukula 2013-06-12 15:29:07