如何使用DOM
將表中的每個tr
的內部值提取到td
?我有這樣一個表:獲取每個tr的表的td值
<table>
<tbody>
<tr class="rowData">
<td class="cellData">
<a href="#"><span> DATA 1 </span></a>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 1 a </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 1 b </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 1 c </div></div>
</td>
</tr>
<tr class="rowData">
<td class="cellData">
<a href="#"><span> DATA 2 </span></a>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 2 a </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 2 b </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 2 c </div></div>
</td>
</tr>
<tr class="rowData">
<td class="cellData">
<a href="#"><span> DATA 3 </span></a>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 3 a </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 3 b </div></div>
</td>
<td class="cellData">
<div class="div1"><div class="div2"> DATA 3 c </div></div>
</td>
</tr>
</tbody>
<table>
我會得到的是:每一行
<label> DATA n </label>
<input value="DATA n a">
<input value="DATA n b">
<input value="DATA n c">
我堅持了這樣的代碼:
$html = file_get_contents($link);
$html2 = (preg_replace('/\s+/', ' ', $html));
$doc = new DOMDocument();
$doc->loadHTML($html2);
$xpath = new DOMXPath($doc);
$tables = $doc->getElementsByTagName('table');
foreach($xpath->query('.//tbody/tr[@class="rowData"]') as $node){
}
foreach($xpath->query('.//tbody/tr/td/div/div[@class="div2"]') as $node){
}
foreach($xpath->query('.//tbody/tr/td/a/span') as $node){
echo $node->nodeValue;
}
有人能幫助我嗎?
感謝您的解決方案,我不得不修復
這真的很奇怪,特別是當第二個XPath查詢構建完全相同的方式適合你。 –