Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [xml - php] [Łatwe] Wyciąganie danych z xml do php
Forum PHP.pl > Forum > XML, AJAX > XML
Dragonas
Witam,
Mam następujący plik xml:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <hhh>
  3. <h id="1" name="Spo" cena="2" time="20" />
  4. <h id="2" name="Dom" cena="6" time="340" />
  5. <h id="3" name="Res" cena="12" time="243240" />
  6. </hhh>



Jak wyciągnąć cenę znając tylko id?

PS: Proszę o nie zjechanie mnie zbytnio - dopiero zaczynam.
skowron-line
Jako że gotowców nie ma to podpowiedź
simplexml + xpath
Dragonas
Z tego co widzę xpath nie jest taki łatwy..
Szukałem dłuugo, ale nie znalazłem żadnego poradnika o xpathu po polsku, a jak próbowałem czytać po ang to nie czaiłem haha.gif
Natomiast z simpleXML sobie radzę.
Mógłby ktoś mi napisać te kilka linijek?

@edit
Aff Możliwe, długo nie spałem. x D

@everth
Wielkie dzięki.
Crozin
Cytat
Natomiast z simpleXML sobię radzę.

Mógłby ktoś mi napisać te kilka linijek?
Albo późna godzina Ci się już narzuca, albo jesteś wyjątkowo bezczelny.
everth
Umiejętność szukania zanika?
Dragonas
Wiem już jak użyć xpatha i wyciągnąć coś dzie id = x, ale tylko gdy plik xml wygląda podobnie do tego:
  1. <aaa>
  2. <bbb id="1">
  3. <c>Aff</c>
  4. <c>Aff2</c>
  5. <c>Aff2</c>
  6. </bbb>
  7. <bbb id="2">
  8. <c>Aff</c>
  9. <c>Assssdff2</c>
  10. <c>Afsfff2</c>
  11. </bbb>
  12. ...
  13. </aaa>

Ale nadal nie umiem wyciągnąć ceny z takiego typu pliku xml:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <hhh>
  3. <h id="1" name="Spo" cena="2" time="20" />
  4. <h id="2" name="Dom" cena="6" time="340" />
  5. <h id="3" name="Res" cena="12" time="243240" />
  6. </hhh>


Proszę o pomoc!

Ok, poradziłem sobie. Szkoda, że sam.
Oczywiście odpowiedź była bardzo prosta, szczególnie dla niektórych, a znalazłem ją w innym forum.
SATIO
tak to już jest z XML, to bardzo trudna sprawa, na prawdę, niby html jest oczywisty, ale już XML nie.
Uczyłem się tego przez kilkanaście dni, ale warto.
W tej chwili moja klasa potrafi ładować wszystko czego potrzebuję.

W Twoim przypadku gdybyś potrzebował gałąź o nr id=2 wystarczyło by:

  1. $url = "folder/nazwa_pliku.xml?xpath=/aaa/bbb[@id='2']";
  2.  
  3. $xml_class = new xml;
  4. $array = $xml_class->xLoad($url);
  5. print_r($array);


ponieważ cenię swoją pracę, nie udostępniam bezpłatnie tej klasy,
jednak dla każdego kto chce być betatesterem i używać jej na własny użytek mogę zrobić wyjątek.

oprócz czytania plików, można usuwać dane:
  1. $url = "folder/nazwa_pliku.xml?xdelete=/aaa/bbb[@id='2']";


jeśli np chcesz zamienić dane w tej gałęzi, wystarczy dopisać dane, tak jak w metodzie GET
  1. $url = "folder/nazwa_pliku.xml?xappend=/aaa/bbb[@id='2']&c=Aff3";


klasa umożliwia dostęp do każdego pliku w sieci, gdzie jest html/xml,
przykładowo można odczytać nazwę strony z tagów <title>:
  1. $url = "http://www.google.pl/#?xpath=/html/head/title[.]";


Ta klasa jest częścią systemu "INVENTIO", który od kilku miesięcy rozbudowuję właśnie pod kątem obsługi danymi XML.


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.