搜寻

2010-10-01 39 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表达式。