2012-01-27 50 views
0

我有一個字符串,其中包含要移除的DIV標記。
我可以通過其參數(這種情況下的特定樣式)將其刪除,這是唯一的。這個DIV包含了很多包含其他DIV的HTML。如何使用HTML/DOM解析器或Xpath刪除包含其他DIV的DIV

<div style="padding-top: 10px; clear: both; width: 100%;"> 
    { a lot other divs here} 
</div> 

如何從字符串中刪除它?

EDIT:(任何有用的技術是歡迎)

編輯2:我知道如何使用ergualr表達式的不便。如果你有一個使用regexs的解決方案也是受歡迎的,因爲它是一個一站式的解析過程,並且文本非常小,並且HTML被很好地解釋(確實是XHTML)。

編輯3:如果可能的話,請用HTML/DOM parser or Xpath或其他什麼來舉例說明。這裏的問題不是選擇數據,而是刪除數據。可以用HTML/DOM parser or Xpath完成嗎?

+0

你想要代碼被物理刪除或只是隱藏的div? – anjunatl 2012-01-27 15:23:33

+2

使用DOMDocument和XPath也更容易。 – 2012-01-27 15:25:48

+0

刪除PLIZ !! ... – 2012-01-27 15:26:12

回答

1

絕不要使用正則表達式來解析(或做其他事情)與HTML。 請參閱this堆棧溢出回答原因。

例如通過DOM樹使用XML解析器。

+0

編輯的問題。 THX ... – 2012-01-27 16:32:43

0

XPath是最簡單的,它使用jQuery的作品。檢查參考。 http://saxon.sourceforge.net/saxon6.5/expressions.html

由於它基於位置(路徑),因此您可以指定想要如何使用文件路徑的深度。

你可以嘗試的東西像// {標籤上面的DIV}/DIV

這是從// DIV不同,因爲//不關心從哪裏開始,它會得到所有的DIV在doc任何地方,所以你的開始標籤必須是唯一的。你甚至可以從// html開始,並且通過DOM樹開始/結束,就像輸入地址一樣。 html和你的第一個div之間不應該有那麼多的級別。