ほとんどテーブルベースのウェブサイトをスクレイピングしています。それぞれ<tr>
がカテゴリを表すタグと、その<td>
中にカテゴリのプロパティを表すタグがあります。
Xpath を使用すると問題は解決し<tr>
ますが、その中のすべての<td>
情報が 1 つの文字列としてまとめられています。
$html_string = file_get_contents('testpage.html');
$dom = new DOMDocument();
$dom->loadHTML($html_string);
$xpath = new DOMXpath($dom);
$context_nodes = $xpath->query('//table[@id="category"]/tr[not(starts-with(@id, "category"))]');
そして、それぞれが<td>
うまくいく可能性がありますが、カテゴリへの遡及的な参照はありません:
$context_nodes = $xpath->query('//table[@id="category"]/tr[not(starts-with(@id, "category"))]/td');
後でやりたいことは、各カテゴリのプロパティを参照できるようにすることです。$context_nodes[2] などでできると思っていたのですが、作成した配列は多次元文字列配列だと思っていました。そうではないようです。
具体的に必要なカテゴリを特定することに基づいて、カテゴリのプロパティを取得できる xpath 情報から配列を作成するにはどうすればよいでしょうか。例: train[1][2]?