0

我正在使用 SIMPLE HTML DOM 来抓取网站,并且得到以下代码...

$GameSummary

<dl class="ismSummary ismHomeSummary">
    <dt>Goals scored</dt>
    <dd><a class="ismViewProfile" href="#438">Gallas</a></dd>
    <dd><a class="ismViewProfile" href="#458">Defoe</a></dd>
    <dt>Assists</dt>
    <dd><a class="ismViewProfile" href="#443">Vertonghen</a></dd>
    <dd><a class="ismViewProfile" href="#447">Lennon</a></dd>
    <dt>Yellow cards</dt>
    <dd><a class="ismViewProfile" href="#438">Gallas</a></dd>
    <dd><a class="ismViewProfile" href="#439">Walker</a></dd>
    <dd><a class="ismViewProfile" href="#450">Huddlestone</a></dd>
    <dt>Saves</dt>
    <dd><a class="ismViewProfile" href="#433">Friedel</a> (3)</dd>
</dl>

我正在尝试将每个部分剪切为其特定部分...我正在尝试按以下顺序获取以下信息...

Heading1: Goals Scored
  Entry: Gallas
  Entry: Defoe
Heading2: Assists
  Entry: Vertongen
  Entry: Lennon
etc....

这是我可以获取标题的代码...

foreach ($GameSummary->find('dt') as $HeadingType)
  {
  echo $HeadingType;
  }

给我所有标题...并获取每个标题的内容..

foreach ($GameSummary->find('dd') as $PlayerNames)
  {
  echo $PlayerNames;
  }

我想知道的是......我如何将这些分成不同的组?我可以分别获取所有标题和所有内容,但我不知道如何获取它,以便每个标题都包含其内容。

有什么想法吗?这应该很容易,但我的大脑无法弄清楚。

谢谢!

示例:http: //fantasypl.com/results.php

4

1 回答 1

0

大致应该是:

   $i=1;
   foreach ($GameSummary->find('dl')->children() as $element)
    {
       if ($element->tag == "dt")  { echo "Heading$i: $element"; $i++; }
       if ($element->tag == "dd") echo "Entry: $element";

    }

[编辑] 实际工作代码,来自以下评论:

    foreach ($GameSummary->children() as $test) 
     { 

        if ($test->tag == "dt") { echo "Heading$i: ".$test->innertext."<br>"; $i++;} 
        if ($test->tag == "dd") { echo "Player: ".$test->innertext."<br>";} 
      }
于 2012-10-31T05:43:04.463 回答