2012-02-23 8 views
0

私は日付オブジェクトのテキストコンテンツとチーム1を取得したいと思います。しかし、チーム2オブジェクトは日付オブジェクトで同じ属性オプションを持っています。どのようにして適切なコンテンツを入手できますか?私が$ dateをエコーし​​た場合、私はTeam2と日付価値を得る...条件をどのように書くべきですか?PHP DOMは同じ属性のオブジェクトにアクセスします

<table width="100%" cellpadding=2 cellspacing=0 id="tblFixture" border=0> 
    <tr class=row1 align=center side='home'> 
     <td align=left>21.09.1928</td> 
     <td>&nbsp;</td> 
     <td align='right'><span class='team'>Team 1</span></td> 
     <td align=left><a href='http://www.foo.com/bar' target='_blank'>Team 2</a></td> 
     </td> 
    </tr> 

PHPコード:

$url = "http://www.bla.com/bla.html"; 
$dom = new DOMDocument; 
@$dom->loadHTMLFile($url); 
$xpath = new DOMXPath($dom); 
$nlig = $xpath->query('//table[@id="tblFixture"]/tr[@side=\'home\']'); 

$i = 0; 
foreach ($nlig AS $val) 
{ 
    $date  = $xpath->query('//table[@id="tblFixture"]/tr[@side=\'home\'][@class=\'row1\']/td[@align=\'left\']')->item($i)->textContent; 
    $first_team = $xpath->query('//table[@id="tblFixture"]/tr[@side=\'home\']/td[@align=\'right\']/span[@class=\'team\']')->item($i)->textContent; 

    echo $date, $first_team, "<br />"; 
    $i++; 
} 
+0

何が 'しかし、チーム2オブジェクトは、日付object'手段と同じ属性のオプションを持っていますか? – Alexander

+0

1928年9月21日Team 2 両方のは=左揃えています...あなたは、データのラベルとして 'align'属性を使用している –

+0

?いいえ、それに 'class'か' id'を付けてください。 – Crontab

答えて

3

あなたが日付を見つける/検証するために正規表現を使用することができます。

のような何か:

preg_match("/<td align=left>([0-9]{2}.[0-9]{2}.[0-9]{4})<\/td>/", $html, $matches); 
+0

私はregexpの経験はもうありません。しかし、もし私がいくつかの正規表現のような規則を得るならば: "数字とカンマなしのすべてをクリア"し、preg_replace関数で使用してください... –

+0

私の前の例では、$ matches [1]それはあなたが探しているものではありませんか? – Tchoupi

関連する問題