0 レビュー
2 回答
php-警告:DOMXPath :: query():無効な式
私はXpathの初心者です。 cURLクエリの結果をループして、ページ上の唯一のテーブルの各要素を出力したいと思います。
Firefox用のXpathプラグインを使用して式を取得しましたが、テーブルは次のように構成されています。
<table>
<tr class="listItemOneBg">
<td valign="top">
SMITH
</td>
<td valign="top">
WILLIAM C C
</td>
<td valign="top">
Male
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
BLACKWOOD
</td>
<td valign="top">
61
</td>
<td valign="top">
1924
</td>
<td valign="top">
<a target="_blank" href='XXX'>
order</a>
</td>
</tr>
<tr class="listItemTwoBg">
<td valign="top">
SMITH
</td>
<td valign="top">
WILLIAM C PAGE-
</td>
<td valign="top">
Male
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
SWAN
</td>
<td valign="top">
9
</td>
<td valign="top">
1914
</td>
<td valign="top">
<a target="_blank" href='XXY'>
order</a>
</td>
</tr>
これが私がこれまでに試したコードです。 「警告:foreach()に無効な引数が指定されました」というメッセージが表示されます。何が間違っているのですか?
$page = curl_exec($ch);
curl_close($ch);
// Create new PHP DOM document
$dom = new DOMDocument;
// Load html from curl request into document model
@$dom->loadHTML($page);
$xpath = new DOMXPath($dom);
$tableRows = $xpath->query("id('divResults')/table/tbody/tr");
foreach ($tableRows as $row) {
// fetch all 'tds' inside this 'tr'
$td = $xpath->query('td', $row);
echo $td->item(1)->textContent;
}
わからない
0
レビュー
答え :
解決策:
目的のテーブルが実際には<div id="divResults">
...
$tableRows = $xpath->query('//div[@id="divResults"]/table/tbody/tr');
foreach ($tableRows as $row) {
$cells = $row->getElementsByTagName('td');
}
わからない
0
レビュー
答え :
解決策:
これは非標準のXPath式です。DOMXPath。
(反対意見、質問が投稿されてから式が編集されました。乾杯!)
ここでXPath
を学びます:
- MicrosoftXPath構文
- Microsoft{-コード-2}の例
PS :それは私がそれを学んだ場所です。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。