我做了很多研究,但我还没有找到我的答案。我正在尝试从网页中获取一些信息,这些信息具有以下 HTML 结构
<div id="xxx" class="some1">
<h1>This is the time</h1>
<div class="ti12">
<div class="sss"></div>
<div class="sss">
<span class="hhh">
<div class="sded">
City:
<span class="sh">CCC</span>
</div>
</span>
</div>
</div>
.
.
.
<div class="pp12"></div>
</div>
现在,我正在做的是以相同的方式获取城市的名称和类似的其他信息。
我必须从上面的代码中找到这些信息。
$arr=array('City', 'Name', 'Address', 'DOB');
如果存在获取其值,否则将其留空。
希望我的我很清楚。
它尝试了以下代码:
<?php
include "simple_html_dom.php";
$html = new simple_html_dom();
$listItem = array('City', 'Name', 'Address', 'DOB');
$html->load_file('simp.html');
$found=array();
foreach($listItem as $item){
$ret = $html->find('div[id=xxx] div',0);
iterateParentNode($ret, $item);
}
function iterateParentNode($ret1, $item1){
for ($node=0;$node < count($ret1->children());$node++){
$child=$ret1->children($node);
echo count($ret1->children())."<br/>";
if(count($ret1->children())==1 && strpos($child, '<span class="sh"')!==false ){
$found[$item1]=$ret1->find('span[class=sh]',0)->plaintext;
return true;
}else{
goThroughChildNode($child, $item1);
}
}
}
function goThroughChildNode($child1, $item2){
echo $child1."ITEM:".$item2;
if(strpos($child1, $item2)!==false){
iterateParentNode($child1, $item2);
}else{
return false ;
}
return true;
}
foreach ($found as $structure=>$data){
echo $structure."=>".$data."<br />";
}
?>
我知道我的 PHP 方法不好,所以请建议我考虑我的 PHP 代码来做这件事的好方法。