私は最近、PHPでDOMモジュールについて読みましたが、今はHTMLドキュメントの解析に使用しようとしています。このページはpregを使用するよりもはるかに良い解決策だと言いましたが、私はそれをどのように使用するかを考え出すのに苦労しています。PHP DOM XPath解析テーブルのヘルプが必要
このページには、日付とそのイベントのX件数を含む表が含まれています。
最初に、valign = "bottom"でtrからテキスト(日付)を取得する必要があります。そして、そのtr以下のvalign = "top"を持つすべてのtrからすべての列値を取得する必要があります。 valの下の各trのすべての列の値が、valign = "bottom"(次の日付)の次のtrまでの日付とともにtrの下にある必要があります。カラムデータを持つtrの数は不明であり、ゼロまたはそれらの多くである可能性があります。
これは、ページ上のHTMLは次のようになります。これまでのところ、私は最初の二つの日付(私は最初の二つの唯一の興味)を取得することができました
<table> <tr valign="bottom"> <td colspan="4">2009-02-26</td> </tr> <tr valign="top"> <td>21:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>23:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="bottom"> <td colspan="4">2009-02-27</td> </tr> <tr valign="top"> <td>06:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>10:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>13:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> </table>
私はここから行く方法を知らない。私は日付のTRSを取得するために使用
XPathクエリが
$result = $xpath->query('//tr[@valign="bottom"][position()<3]);
ある今私はすなわち、現在までに、その日のすべてのイベントを接続する方法が必要です。すべてのtdsとすべての列の値を次の日付trまで選択します。
ありがとうございます。しかし、[valign = "bottom"]のノードまで兄弟を選択するにはどうすればよいですか?私が選択した日付にfollow-sibling :: tr [@ valign = "top"]を使用すると、次の日付trまでのものだけを必要とするときに、次のtrをすべて返します。 –
現在のtr [@ valign = "bottom"]の兄弟をフォローしているノードをすべて選択しますが、次のノードの兄弟はフォローしません。たとえば、最初の1つの場合: follow-sibling :: tr [@ valign = "bottom"] [1]ではなく(following-sibling :: tr [@ valign = "bottom"] [2]) – vartec