Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Problem z XML jak wyciągnąć dane ....,, Problem z wyciągnieciem danych z XML
Ardo
post 12.12.2011, 19:28:24
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


Witam
Jestem początkujący, dlatego proszę o wyrozumiałość za pytania jakie kieruje dla jednych to proste dla mnie jednak nie do przejscia.
Mam problem z wyciągnięciem danych z XML chodzi dokładnie o tą część kodu:

Proszę o pomoc jak można zapisać wyciagnięcie tych zdjęć

Plik XML tak wygląda:
  1. <dane>
  2. <record>
  3. <numer_oferty>3_165690</numer_oferty>
  4. <zdjecia>
  5. <1>true</1>
  6. <2>true</2>
  7. <3>true</3>
  8. <4>true</4>
  9. <5>false</5>
  10. <6>false</6>
  11. <7>false</7>
  12. <8>false</8>
  13. <9>false</9>
  14. <10>false</10>
  15. <11>false</11>
  16. <12>false</12>
  17. <13>false</13>
  18. <14>false</14>
  19. <15>false</15>
  20. </zdjecia>
  21. </record>
  22.  
  23. <record>
  24. <numer_oferty>3_169990</numer_oferty>
  25. <zdjecia>
  26. <1>true</1>
  27. <2>true</2>
  28. <3>true</3>
  29. <4>true</4>
  30. <5>true</5>
  31. <6>true</6>
  32. <7>true</7>
  33. <8>true</8>
  34. <9>false</9>
  35. <10>false</10>
  36. <11>false</11>
  37. <12>false</12>
  38. <13>false</13>
  39. <14>false</14>
  40. <15>false</15>
  41. </zdjecia>
  42. </record>
  43. </dane>
  44.  


zdjęcia mają nazwy: 165690_1.jpg 165690_2.jpg 165690_3.jpg 165690_4.jpg , czyli numer_oferty + nr zdjęcia

napisałem coś takiego, ale to nie to zapisuje tylko true badz false a ja musze mieć nazwy plików pełne


  1. foreach ($dane->record->zdjecia->zdjecia as $zdjecia)
  2. {
  3. $thisDom['zdjecia'][] = $zdjecia;
  4. }
  5.  


prosze o pomoc jak tą część XML wyciągnąć (xml ma true bądź false a nie nazwy plików )


będę wdzięczny za wszelką pomoc.

Go to the top of the page
+Quote Post
Scalak
post 29.12.2011, 20:56:37
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

Ostrzeżenie: (0%)
-----


za wikipedią:
Cytat
nazwy elementów nie mogą zaczynać się od znaku łącznika -, kropki, czy cyfry. Dodatkowo nie mogą zaczynać się od xml, XML, xML itp. (wielkość liter bez znaczenia).

modyfikuję XML na:
Kod
<dane>
<record>
    <numer_oferty>3_165690</numer_oferty>
    <zdjecia>
                <plik nr="1">true</plik>
                <plik nr="2">true</plik>
                <plik nr="3">true</plik>
                <plik nr="4">true</plik>
                <plik nr="5">false</plik>
                <plik nr="6">false</plik>
                <plik nr="7">false</plik>
                <plik nr="8">false</plik>
                <plik nr="9">false</plik>
                <plik nr="10">false</plik>
                <plik nr="11">false</plik>
                <plik nr="12">false</plik>
                <plik nr="13">false</plik>
                <plik nr="14">false</plik>
                <plik nr="15">false</plik>
    </zdjecia>
</record>
<record>
    <numer_oferty>3_169990</numer_oferty>
    <zdjecia>
                <plik nr="1">true</plik>
                <plik nr="2">true</plik>
                <plik nr="3">true</plik>
                <plik nr="4">true</plik>
                <plik nr="5">true</plik>
                <plik nr="6">true</plik>
                <plik nr="7">true</plik>
                <plik nr="8">true</plik>
                <plik nr="9">false</plik>
                <plik nr="10">false</plik>
                <plik nr="11">false</plik>
                <plik nr="12">false</plik>
                <plik nr="13">false</plik>
                <plik nr="14">false</plik>
                <plik nr="15">false</plik>
    </zdjecia>
</record>
</dane>

i wtedy:
Kod
<pre>
<?php
$doc = new DOMDocument();
$doc->load('dane.xml');
foreach($doc->getElementsByTagName('record') as $row){
    foreach($row->getElementsByTagName('plik') as $dana){
        if($dana->nodeValue=="true")
            echo $row->getElementsByTagName('numer_oferty')->item(0)->nodeValue."_".$dana->getAttribute('nr').".jpg<br>";
    }
}
?>
</pre>


Pozdrawiam
Scalak
Go to the top of the page
+Quote Post
mortus
post 29.12.2011, 20:59:27
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Uzyskałeś już odpowiedź na to pytanie.
Powód edycji: [piotrooo89]: proszę nie robić offtopa, przycisk raportuj działa.
Go to the top of the page
+Quote Post
piotrooo89
post 29.12.2011, 21:28:14
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Proszę o kontynuowanie wątku w poprzednim temacie, w przeciwnym razie +10 do ostrzeżeń.


--------------------
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 10:14