我正在开展一个项目,涉及我从互联网上下载的数万个文件。页面的来源(MO政府)没有很好地编写页面。
我正在将页面中的某些元素拉到另一个页面中,以便更好地在我的网站中引用。 以下是一个工作示例:
<div id="intsect">
<strong>Common law in force--effect on statutes.</strong>
</div>
// PHP CODE
// Load Document
$doc = new DOMDocument();
// Load File Values
@$doc->loadHTMLFile("stathtml/" . $file);
// Load the <div id="intsect"></div> value
$genAssem = $doc->getElementById("intsect");
// Appropriate value
$genAssem = " <b>Statute Name: </b>" . $genAssem->textContent . "<br><br>";
# VALUE (example)
Statute Name: Common law in force--effect on statutes.
以下是杀死我的部分:
<div id="intsect">
<strong>Common law in force--effect on statutes.</strong>
</div>
<!-- THIS PART -->
<p> 1.035. Whenever the word "voter" is used in the laws of this state it shall mean registered voter, or legal voter.
程序员没有给它一个ID或一个类。我需要提取#intsect
后面的段落标记。 是否有可以在<p></p>
之后选择#intsect
代码的PHP选择器?
答案 0 :(得分:2)
您可以使用xpath
定位<p>
标记,该标记的前导兄弟div
的ID为intsect
:
$doc = new DOMDocument;
@$doc->loadHTMLFile("stathtml/" . $file);
$xpath = new DOMXpath($doc);
$p = $xpath->query('//p[preceding-sibling::div[@id="intsect"]]');
if($p->length > 0) {
echo $p->item(0)->nodeValue;
}