我有这种类型的代码:
<div class="content">
<p></p>
<p></p>
<p></p>
</div>
<div class="content">
<p></p>
<p></p>
<p></p>
</div>
我希望从第一个元素p
中选择所有content
个元素。
我设法通过使用:
(//div[@class="content"])[1]
但是使用(//div[@class="content"])[1]/p
它仍会显示两个类
答案 0 :(得分:1)
以下是使用PHP's SimpleXML
的工作示例。我对您提供的HTML
代码进行了一些小的更改,因此输出更有意义。
关于你提供的XPath表达式,我刚删除了括号,它都按预期工作。
注意 :关注@ LarsH的评论后,我恢复了XPath表达式,因为它对初学者来说没问题。我冒昧地根据它的例子来更新它。
<?php
$html = <<<HTML
<body>
<div class="content">
<p>1</p>
<p>2</p>
<p>3</p>
</div>
<div class="content">
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<div>
<div class="content">
<p>7</p>
<p>8</p>
<p>9</p>
</div>
</div>
</body>
HTML;
$sxe = new SimpleXMLElement($html);
foreach ($sxe->xpath('(//div[@class="content"])[1]/p') as $p) {
echo "$p\n";
}
1
2
3