【发布时间】:2019-01-23 20:42:49
【问题描述】:
我有以下 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>';
我正在尝试仅获取 Header 3 的 li 列表,但以下代码不起作用;
$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 />";
}
我期待输出:
List Value A<br />
List Value B<br />
List Value C<br />
【问题讨论】: