Autor Zpráva
Komlop
Profil *
Zdravím,
mám problém se zpracování xml pomocí data, zde je xml:
 <PRVNI>
    <DRUHA>
      <DAY date="05.11.2012" day="pondel�">
        <PRODUKT>
          <CENA>50</CENA>
          <NAZEV>NAZEV1</NAZEV>
        </PRODUKT>
      </DAY>
      <DAY date="06.11.2012" day="pondelí">
        <PRODUKT>
          <CENA>60</CENA>
          <NAZEV>NAZEV2</NAZEV>
        </PRODUKT>
      </DAY>
    </DRUHA>
 </PRVNI>
Zde zpracování v php:
 <?php
    $datum = Date("d.m.Y", Time());
$xml=simplexml_load_file("http://www.web.cz/soubor.xml");
$index = 1;
foreach ($xml->PRVNI->DRUHA->DAY->PRODUKT  as $item){
if($index > 50){  break; } 
$index++;
$cena = $item->CENA;
$nazev = $item->NAZEV;
} 
echo "vypis:".$cena." - ".$nazev."<br>"; 
?>

Ted jak mám udělat, aby se mi vypsal produkt na 06.11.2012?
PS: xml není mé a nemohu ho měnit, můžu měnit pouze php
MOc prosim o pomoc :)
Prochy
Profil
SimpleXMLElement::attributes
Jinak datum získáš rovnou $datum = Date("d.m.Y");, nemusíš tam za to psát to Time().
A tím získáš hodnotu date, a poté už to snad zvládneš.
Komlop
Profil *
Prochy:
Datum dokážu vypsat, ale nevim, jak to mám porovnat s tím atributem,
můžeš mi to napsat na příkladu pls?
Prochy
Profil
Musíš první procházet foreachem položku day, kde potom můžeš porovnat datumy.

Asi nějak takto by to mělo vypadat (nemohl sem to odzkoušet, tak si nejsem stopro jistý):
$xml=simplexml_load_file("http://www.web.cz/soubor.xml");
$index = 1;
foreach ($xml->PRVNI->DRUHA->DAY  as $day){
  if($day->attributes()->date==Date("d.m.Y")){
    foreach($day->PRODUKT as $item){
        $index++;
        $cena = $item->CENA;
        $nazev = $item->NAZEV;
      }
     break; 
  }
} 
echo "vypis:".$cena." - ".$nazev."<br>"; 
Komlop
Profil *
funguje, moc díky :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: