私は XPath を使い始めたばかりで、テーブル要素を正しくトラバースして tr の td 値を見つける方法をいじっています。ノードの兄弟値のみをエコーアウトしようとしています。たとえば、私のテーブル:
<table class="123">
<tbody>
<tr>
<td id="myYear">Year</td>
<td>2001</td>
<td>2002</td>
<td>2003</td>
</tr>
<tr>
<td id="myScores">Scores</td>
<td>82</td>
<td>87</td>
<td>94</td>
</tr>
</tbody>
</table>
私のphpコードは次のとおりです。
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->loadHTML($content);
$xpath = new DOMXpath($dom);
$myYear = $xpath->query('//table[@class="123"]/tbody/tr/td[@id="myYear"]');
foreach ($myYear as $year) {
echo $year->nodeValue; //returns Year
echo "<br>";
$siblings = $year->nextSibling;
foreach ($siblings as $value) {
echo $value->nodeValue;
}
}
上記の例では、出力は「Year」ですが、「myScores」の 3 つの兄弟値 (82、87、94 など) の出力が得られません。
アドバイスをありがとう。