I have the following HTML:
$page = '<html>
<head>
<title>Page</title>
</head>
<body>
<div>
<div>
<div>
</div>
<div class="this one">
<h2>Ignore</h2>
<p>Text</p>
<h2>Header 1</h2>
<ul><li>List Value 1</li></ul>
<h2>Header 2</h2>
<ul><li>List Value 2</li></ul>
<h2>Ignore</h2>
<ul><li>List Value 3</li></ul>
<h2>Header 3</h2>
<ul>
<li>List Value A</li>
<li>List Value B</li>
<li>List Value C</li>
</ul>
<h2>Ignore</h2>
<p>Text</p>
</div>
</div>
</div>
</body>
</html>';
I am trying to get the li
list for Header 3
only and the following code doesn't work;
$doc->loadHTML($page);
$xpath = new DomXPath($doc);
$nodes = $xpath->query("//div[@class='this one']/h2[.='Header 3']/ul/li");
foreach($nodes as $node) {
echo $node->nodeValue . "<br />";
}
I am expecting the output:
List Value A<br />
List Value B<br />
List Value C<br />