[XML][PHP] Przetwarzanie katalogu, wyciąganie danych |
[XML][PHP] Przetwarzanie katalogu, wyciąganie danych |
7.07.2013, 13:24:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 30.03.2013 Ostrzeżenie: (0%) |
Witam,
od kilku dni szukam, czytam i testuję. Mam do przetworzenia katalog, który dostałem w pliku XML (cały waży ok. 5 mb, zawiera kilkaset produktów opisanych w 110 tys. linii). Obecnie jestem na etapie SimpleXML, ale nie wiem, czy idę w dobrą stronę i stąd ten post. Skrypt wyszukuje produkt według jego unikalnego ID, następnie wyciąga potrzebne dane produktu z odpowiednich elementów (identyfikowanych według ich atrybutu), wyświetla to w przeglądarce (docelowo ma zapisywać do bazy SQL). Poniżej zamieszczam mój roboczy skrypt:
Przykładowy produkt z katalogu XML:
Czy SimpleXML to dobre wyjście w tej sytuacji? Obawiam się tych wszystkich pętli, przy zapisie kilkuset produktów pewnie będzie ciężko. Jak inaczej mogę dotrzeć do wartości zagnieżdżonej w danym elemencie wyszukując go według atrubutu? Z góry dziękuję za pomoc, Pozdrawiam Ten post edytował flipp 8.07.2013, 09:46:15 |
|
|
7.07.2013, 17:00:46
Post
#2
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) |
Xpath.
http://php.net/manual/en/simplexmlelement.xpath.php http://www.dimuthu.org/blog/2008/09/30/xpath-in-simplexml/ Ten post edytował matiit 7.07.2013, 17:01:26 |
|
|
9.07.2013, 23:50:06
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 30.03.2013 Ostrzeżenie: (0%) |
Bardzo dziękuję za wskazówkę .
Mam jeszcze pewien problem z wyciągnięciem składników, są zapisane tak:
Wklepuję takie zapytanie:
Poprawnie wyświetla mi się zawartość <name></name> "Benefit", a chcę oprócz tego wyświetlić to co jest w:
Czyli nie w elemencie <nomenclatura>, ale na równi z nim. Jak mogę sprawdzić, czy <nomenclatura> ma key='Benefit', a następnie wrócić wyżej i wyświetlić <headline> i <text>? Pozdrawiam Ok, odpowiedź na powyższe pytanie już mam, wystarczyło zastosować /parent::*
Kolejny problem mam z wyświetleniem tabeli z:
Próbowałem rozbić to najpierw na wiersze tabeli (następnie chciałem na poszczególne komórki, z tym nie byłoby problemu bo separatorem jest ';' ).
W wyniku dostaję jednoelementową tablicę z całą zawartością <ration_csv>. Problem z rozpoznaniem przejścia do kolejnej linii, \n nie zdaje egzaminu. Jak inaczej mogę to rozbić? Ten post edytował flipp 8.07.2013, 10:04:39 |
|
|
Wersja Lo-Fi | Aktualny czas: 22.09.2024 - 15:23 |