Autor Zpráva
pamas
Profil
Ahoj,
už týden laboruju se čtením dat z XML. Soubor je generovaný dynamicky u url adresy. Já jsem si ho uložil, abych měl stejná data než to dám dohromady.
Struktura xml souboru je taková:
<?xml version="1.0" encoding="windows-1250"?>
<zbozi>
  <firma>
    <firma_udaje>
      <client>xxx</client>
      <nazev>xxx</nazev>
      <ulice>xxx</ulice>
      <obec>xxx</obec>
      <psc>xxx</psc>
      <telefon>xxx</telefon>
      <fax>xxx</fax>
      <email>xxx</email>
      <www>xxx</www>
    </firma_udaje>
    <polozky>
      <polozka>
        <date_in>xxx</date_in>
        <evid_cislo></evid_cislo>
        <kategorie_klic>xxx</kategorie_klic>
        <kategorie_text>xxx</kategorie_text>
        <vyrobce_klic>xxx</vyrobce_klic>
        <výrobce_text>xxx</vyrobce_text>
        <fotky>
          <fotka datum="xxx">
            <nazev>xxx.jpg</nazev>
            <hlavni>1</hlavni>
          </fotka>
          <fotka datum="xxx">
            <nazev>yyy.jpg</nazev>
            <hlavni>0</hlavni>
          </fotka>
        </fotky>
        <vybava>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
        </vybava>
      </polozka>
      <polozka>
        <date_in>xxx</date_in>
        <evid_cislo></evid_cislo>
        <kategorie_klic>xxx</kategorie_klic>
        <kategorie_text>xxx</kategorie_text>
        <vyrobce_klic>xxx</vyrobce_klic>
        <výrobce_text>xxx</vyrobce_text>
        <fotky>
          <fotka datum="xxx">
            <nazev>xxx.jpg</nazev>
            <hlavni>1</hlavni>
          </fotka>
          <fotka datum="xxx">
            <nazev>yyy.jpg</nazev>
            <hlavni>0</hlavni>
          </fotka>
        </fotky>
        <vybava>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
          <vybava_klic>xxx</vybava_klic>
          <vybava_text>xxx</vybava_text>
        </vybava>
      </polozka>
    </polozky>
  </firma>
</zbozi>

php kód kterým to čtu mám takto:

$name = $_POST['adresa'];
    echo "Importovaný soubor z adresy: <b> $name </b><br />";
    $xml = file_get_contents($name);
    $souborxml = simplexml_load_string($xml);

    foreach($souborxml->firma->polozky->polozka as $polozka){
      echo "Výrobce: " . $polozka->vyrobce_text . "<br />"; 
      foreach($polozka->fotky->fotka as $fotky){
        echo "   fotka: " . $fotky->nazev . "<br/>";
      }
      foreach($polozka->vybava as $prisl){
        echo "   příslušenství: " . $prisl->vybava_text . "<br/>";
      }
    }

Když to ale pustim, tak mi to krásně vypíše všechny položky, krásně mi to vypíše všechny fotky patřící ke každé položce. Jen položky patřící k výbavě mi načte jen jednu - první. Zkoušel jsem to zpřeházet, ale jen takto mi to vypíše alespoň tu první položku. Pomůže mi někdo? Díky
juriad
Profil
Stačí přesunout vybava_text do smyčky, protože chceš uvnitř jednoho jediného elementu vybava projít všechny vybava_text.

      foreach($polozka->vybava->vybava_text as $prisl){
        echo "   příslušenství: " . $prisl . "<br/>";
      }
pamas
Profil
juriad:
To je přesně ono! Teď když to vidim, tak je mi to jasný! Jak málo stačí... Díky moc!

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: