PHP DOM / XPath

Felizmente, deve ser uma pergunta simples para alguém que já fez isso ante

Tenho uma lista de documentos da web antigos em formato de tabela com muitos detalhes de contato. O que eu consegui até agora é criar um script PHP que analise o documento XHTML e retire os detalhes de contato do cliente antig

Um exemplo do formato do documento:

<tr>
  <td bgcolor="#CCCCCC" valign="top"><a href="#" class="details">Indigo Blue 123</a></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" align="top"><font class="details">123 Blue House</font></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" align="top"></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"><font class="details">Hanley</font></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"><font class="details">ST13 4SN</font></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"><font class="details">Stoke on Trent</font></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"><font class="details">01875 322511</font></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"></td>
  <td bgcolor="#CCCCCC"></td>
  <td bgcolor="#CCCCCC" valign="top"><a href="http://www.indigoblue123.org.uk" target="_blank" class="details">www.indigoblue123.org.uk</a></td>
  <td bgcolor="#CCCCCC"></td>
</tr>

O que eu preciso fazer é analisar todos esses detalhes de contato em uma matriz. As poucas coisas que não tenho certeza de como concluir são pegar os blocos vazios para serem entradas vazias da matriz (ou seja, o Endereço 2 e o Endereço 3 ficarão em branco, mas eu preciso saber disso), além de pegar o endereço da Web do<a>..</a> quadra

Até agora, calculei que todos os dados preenchidos têmclass=details de alguma forma. No entanto, como mencionei antes, não tenho certeza de qual é a melhor maneira de obter o resultado geral. Existem cerca de 20 a 40 entradas nos diferentes arquivos que tenho.

Eu gerenciei o básico com isso até agora:

<?php
  print '<pre>';
  $html = file_get_contents('old-contacts.xhtml');

  // Create new DOM object:
  $dom = new DomDocument();

  // Load HTML code:
  $dom->loadHTML($html);

  $xpath = new DOMXPath($dom);
  $details = $xpath->query("//table/tbody/tr[td/font/@class = 'details']");

  for ($i = 0; $i < $details->length; $i++) {
    $data[$i]['data'] = $details->item($i)->nodeValue;
    echo $data[$i]['data'];
  }
  print '</pre>';
?>

Qualquer ajuda seria ótimo

Obrigad

questionAnswers(2)

yourAnswerToTheQuestion