搜尋

2010-10-01 48 views
5

下H3和H4標記這是我的HTML:搜尋

<h3>test 1</h3> 
<p>blah</p> 
<h4>subheading 1</h4> 
<p>blah</p> 
<h4>subheading 2</h4> 
<h3>test 2</h3> 
<h4>subheading 3</h4> 
<p>blah</p> 
<h3>test 3</h3> 

我試圖建立H3標籤的數組,嵌套在他們H4標籤。陣列的一個例子如下所示:

Array 
(
    [test1] => Array 
     (
      [0] => subheading 1 
      [1] => subheading 2 
     ) 

    [test 2] => Array 
     (
      [0] => subheading 3 
     ) 

    [test 3] => Array 
     (
     ) 

) 

很高興使用preg_match或DOMDocument,有什麼想法嗎?

回答

6

隨着DOM文檔:

  • 使用XPath的"//h3"找到所有<h3>。這些都將是你的陣列
  • 在第一級條目爲他們每個人:
    • 計數變量$i(從1數!)作爲循環的一部分
    • 使用XPath的"./following::h4[count(preceding::h3) = $i]"找到任何子座標<h4>
    • 這些將是第二級你陣列中

的XPath表達式「選擇具有相同的C所有<h4>上述<h3>的前一個數字「。對於計數爲1的第一個<h3>,當然,第二個計數爲2,依此類推。

請確保在相應的<h3>節點的上下文中執行XPath表達式。