[英]Trouble scraping table with DOMXPath
我有一張要刮的桌子,看起來像這樣:
<table id="thisTable">
<tr>
<td class="value1"></td>
<td class="value2"></td>
<td class="value3"></td>
<td class="value4"></td>
</tr>
<tr>
<td class="value5"></td>
<td class="value6"></td>
</tr>
</table>
和我的DOMXPath看起來像這樣(到目前為止):
$htmlDoc = new DomDocument();
@$htmlDoc->loadhtml($html);
$xpath = new DOMXPath($htmlDoc);
$nodelist = $xpath->query('//*[@id="thisTable"]');
foreach ($nodelist as $n){
echo $n->nodeValue."\n";
}
這可行,我得到表的值,但是如何指定nodeValue的類呢? 最終,我的目標是在一行中根據td
的value2
, value4
和value5
的內容構建一個新表。
$htmlDoc = new DomDocument();
$htmlDoc->loadHTML($html);
$xpath = new DOMXPath($htmlDoc);
$nodelist = $xpath->query('//td');
foreach ($nodelist as $n){
echo $n->getAttribute("class")."\n";
}
注意 :使用getAttribute屬性獲取類的值
展開xpath-query:
$class="value1";
$nodelist = $xpath->query('//*[@id="thisTable"][@class="$class"]');
不知道我是否理解正確,如果要將value2,value4和value5的文本內容放在一行中,可以使用以下xpath:
(//td[@class='value2'] | //td[@class='value4'] | //td[@class='value5'])/text()
例如:
<table id="thisTable">
<tr>
<td class="value1"> 1111</td>
<td class="value2"> 222 </td>
<td class="value3">333 </td>
<td class="value4"> 444</td>
</tr>
<tr>
<td class="value5"> 555</td>
<td class="value6"> 666</td>
</tr>
</table>
輸出將是:222444555
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.