这是我的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,有什么想法吗?
答案 0 :(得分:6)
使用DOMDocument:
"//h3"
查找所有<h3>
。这些将是数组中的第一级条目$i
(从1开始计算!)作为循环的一部分"./following::h4[count(preceding::h3) = $i]"
查找任何子坐标<h4>
XPath表达式是“选择具有相同常数前导<h4>
”的所有<h3>
。对于计数为1的第一个<h3>
,当然,对于第二个,计数为2,依此类推。
确保在相应的<h3>
节点的上下文中执行XPath表达式。