希望對於以前做過的人來說,這應該是一個簡單的問題!PHP DOM/XPath
我有一個表格式的舊web文檔列表,裏面有很多聯繫方式。到目前爲止,我管理的是創建一個PHP腳本,用於解析XHTML文檔並提取舊客戶端聯繫人詳細信息。
文檔格式的例子:
<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>
我需要做的是分析所有這些聯繫方式到一個數組。我不確定如何完成的一些事情是將空塊取爲空數組條目(即地址2和地址3將爲空,但我需要知道這一點)以及從<a>..</a>
中獲取網址塊。
到目前爲止,我已經計算出所有填充的數據都以某種形式存在class=details
。但是,正如我之前提到的,我不確定完成整體結果的最佳方式是什麼。在我有不同的文件大約20-40條目。
我迄今所管理的基礎知識,這樣的:
<?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>';
?>
任何幫助將是巨大的!
感謝