Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在下面找到h3和h4标签_Php_Dom_Html Parsing_Domdocument - Fatal编程技术网

Php 在下面找到h3和h4标签

Php 在下面找到h3和h4标签,php,dom,html-parsing,domdocument,Php,Dom,Html Parsing,Domdocument,这是我的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>

这是我的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>
很高兴使用preg_match或DOMDocument,有什么想法吗?

与DOMDocument一起使用:

  • 使用XPath
    “//h3”
    查找所有
    。这些将是数组中的第一级条目
  • 对于每一项:
    • 将变量
      $i
      (从1开始计数!)作为循环的一部分进行计数
    • 使用XPath
      “/following::h4[count(preference::h3)=$i]”
      查找任何子坐标
    • 这些将是您阵列中的第二级
XPath表达式是“选择前面的
具有相同常量的所有
”。对于第一个
,计数自然是1,对于第二个,计数自然是2,依此类推

确保在相应的
节点的上下文中执行XPath表达式

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

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

    [test 3] => Array
        (
        )

)