我希望得到并显示标题,电话,传真和地址(如果存在)。
HTML代码可以是:
<div id="id1">
<div class="AB">
<ul>
<li class="title"> AGENCE X </li>
<li class="tel"> 060000000</li>
<li class="fax"> 06000000</li>
<li class="address> this is the address </li>
</ul>
</div>
<div class="AB"> //the same class name
<ul>
<li class="titre"> AGENCE X </li>
<li class="tel"> 060000000</li>
<li class="fax"> 06000000</li>
</ul>
</div>
<div>...</div>
</div>
&#13;
我编写了这段代码,但我不知道如何编写条件&#34;如果一个节点具有类名&#39;地址&#39;或者&#39;传真&#39;或者&#39; tel&#39;存在&#39;然后做 X 。
这是我的代码:
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://website.com');
$node = $doc->getElementsByTagName('div') ;
$xpath=new DOMXPath($doc);
$titre=$xpath->query('//div/ul/li[@class="titre"]');
$adresse=$xpath->query('//div/ul/li[@class="adresse"]');
$phone=$xpath->query('//div/ul/li[@class="phone"]');
$fax=$xpath->query('//div/ul/li[@class="fax"]');
$a=0;$b=0;$c=0;
for($i=0;$i<$titre->length;$i++)
{
echo $titre->item($i)->nodeValue.'<br/>' ;
if(a "li" has classe="adresse" existe)
{ for($a=0;$a<$adresse->length;$a++)
{
echo $adresse->item($a)->nodeValue.'<br/>' ;
$a++;
}
}
if(a "li" has classe="titre" existe){ for($b=0;$b<$phone->length;$b++)
{
echo $titre->item($b)->nodeValue.'<br/>' ;
$b++;
}
}
if(a "li" has classe="fax" existe) { for($c=0;$c<$fax->length;$c++)
{
echo $fax->item($c)->nodeValue.'<br/>' ;
$c++;
}
}
}
&#13;
有人能告诉我怎么能写这个条件或其他解决方案?