XML ayrıştırma bazı yardıma ihtiyacınız var

2 Cevap php

XML feed yer almaktadır: http://xml.betclick.com/odds%5Ffr.xml

I need a php loop to echo the name of the match, the hour, and the bets options and the odds links. The function will select and display ONLY the matchs of the day with streaming="1" and the bets type "Ftb_Mr3".

Ben XPath ve SimpleXML yeniyim.

Şimdiden teşekkürler.

Şimdiye kadar var:

<?php
$xml_str = file_get_contents("http://xml.betclick.com/odds_fr.xml");
$xml = simplexml_load_string($xml_str);

// need xpath magic
$xml->xpath();

// display

?>

2 Cevap

Eğer onu asmak olsun kez XPath oldukça basittir

Eğer temelde belli bir niteliği her maç etiketi almak istiyorum

//match[@streaming=1]

pefectly çalışacak, bu nitelik 1'e eşit akışı ile ana etiketi altından her maç etiketi alır

Ve ben sadece siz de istediğiniz gerçekleştirilen "Ftb_Mr3" bir bahisler türü ile eşleşir

//match[@streaming=1]/bets/bet[@code="Ftb_Mr3"]

Bu olsa bahis düğüm dönecektir, biz biliyoruz maçı, büyükbaba olduğunu istiyorum

//match[@streaming=1]/bets/bet[@code="Ftb_Mr3"]/../..

iki nokta onlar dosya yolları yapmak gibi çalışır, ve maçı alır.

Şimdi numune içine bu iş için sadece nihai biraz değiştirmek

// need xpath magic
$nodes = $xml->xpath('//match[@streaming=1]/bets/bet[@code="Ftb_Mr3"]/../..');

foreach($nodes as $node) {
    echo $node['name'].'<br/>';
}

tüm maç adlarını yazdırmak için.

Gerçekten XPath nasıl çalıştığını bilmiyorum, ama 'loop' o istiyorsanız, bu başlamak gerekir:

<?php
$xml = simplexml_load_file("odds_fr.xml");

  foreach ($xml->children() as $child)
  {
    foreach ($child->children() as $child2)
    {
      foreach ($child2->children() as $child3)
      {
        foreach($child3->attributes() as $a => $b)
        {
          echo $a,'="',$b,"\"</br>";
        }

      }
    }
  }
?>

İşte 'akarsu' özniteliği 'maç' etiketi sizi alır. Gerçekten 'günün maçı' ya, ne olduğunu biliyorum, ama ...

It's basically right out of the w3c reference: http://www.w3schools.com/PHP/php%5Fref%5Fsimplexml.asp