![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem z przetworzeniem poniższego pliku xml:
Dotychczas każdy znacznik miał indywidualną nazwę. Teraz są to znaczniki <p> z atrybutami id. Jak mam się do nich dostać w celu wyświetlenia za pomocą php? Korzystam z simplexml.
Z góry dzięki za wskazówki. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Zajrzyj tutaj: http://www.w3schools.com/php/php_xml_simplexml_get.asp do "PHP SimpleXML - Get Attribute Values"
Wartości dla id są zapewne jakoś opisane, tzn. dane id przedstawia konkretny atrybut. Musisz/powinieneś to mieć gdzieś zmapowane. -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
Mam faktycznie do tego pliku osobny plik xml o nazwie definictions. Zawiera on nazwy poszczególnych id. Przykład:
Tylko pytanie jak skojarzyć te dwa pliki w jeden, abym mógł odwoływać się do wartości? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Znasz zatem "objaśnienie" dla danej wartości id. W zależności teraz co potrzebujesz, wiesz które id (o jakiej wartości) wyświetlić/przetwarzać.
-------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Zaczynam pomału kumać. Jednak nadal nie wiem jak zrealizować to za pomocą php. Załóżmy, że z pliku xml:
chcę za pomocą php wyświetlić wartości z <p id="2"> za pomocą pętli foreach. Jak zatem skojarzyć ten plik z plikiem xml:
Nie mogę przecież użyć odwołania $xml->'p id=2'; Musi to przebiegać w jakiś inny sposób. Skoro wiemy, że id=2 to 'biuro wprowadzające' to jak skojarzyć ze sobą te dwa dokumenty. Z góry dzięki za wskazówki. Ten post edytował wegorz10 24.09.2015, 14:48:06 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Troszkę nie doczytałeś z poprzednich linków, które podałem.
Wypisanie atrybutów id dla węzłów: Kod $xml=simplexml_load_file("params.xml") or die("Error: Cannot create object"); foreach($xml->children() as $child) { foreach($child->attributes() as $a => $b) { echo $a,'="',$b,"\"\n"; } } W tym drugim pliku xml masz opisane co dana wartość id oznacza. Jak chcesz skorzystać z niego załaduj jego zawartość do kolejnego obiektu xml. -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko rozumiem, jednak nie chcę wyświetlać wartości atrybutów id tylko wartości, któa kryje się pod tym znacznikiem.
Tzn. jeśli mamy w pliku xml znaczniki:
to chciałbym wyświetlić za pomocą php informację: 1 - kot 2 - pies i tego właśnie nie wiem. Póki co udaje mi się wyświetlić tylko wartości atrybutów id. Ale nie mogę wyświetlić tego, ze np. pod id=1 kryje się kot. Wiem, że pewnie rozwiązanie jest proste, ale proszę wybaczyć moją dociekliwość. W kwestii xml`a jestem niezorientowany. Ten post edytował wegorz10 24.09.2015, 15:40:47 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Dla takiej struktury XMLa
wyświetlanie wg. Tego czego oczekujesz:
Możliwe, że da się to wykonać bardziej elegancko. -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Super, dzięki!
A jak za pomocą xpath wybrać tylko te oferty, które w <p id="18"> będą miały wartość BUDOWLANA? EDIT Poradziłem sobie. Postanowiłem zapisywać wszystkie dane w bazie. Na niej łatwiej wykonywać wszelkiego rodzaju filtry i zapytania. Dzięki za pomoc. Będziesz w Poznaniu to się odezwij. Stawiaj piwo ;-) Ten post edytował wegorz10 25.09.2015, 10:08:15 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 13:02 |