Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][XML] Odczyt pliku XML
jg44
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 14
Dołączył: 14.07.2011
Skąd: Gliwice / Wrocław

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


Witam,
mam pewien problem z odczytem pliku XML. Plik ten pochodzi z programu Wireshark, i potrzebuję z niego wyciągnąć tylko CZASY przepływów między kolejnymi pakietami. Plik ten ma następującą strukturę:
  1. <?xml version="1.0"?>
  2. <psml version="0" creator="wireshark/1.8.3">
  3. <structure>
  4. <section>No.</section>
  5. <section>Time</section>
  6. <section>Source</section>
  7. <section>Destination</section>
  8. <section>Protocol</section>
  9. <section>Length</section>
  10. <section>Info</section>
  11. </structure>
  12.  
  13. <packet>
  14. <section>1</section>
  15. <section>0.000000000</section>
  16. <section>10.0.2.15</section>
  17. <section>172.16.0.1</section>
  18. <section>DNS</section>
  19. <section>73</section>
  20. <section>Standard query 0x2dfd A www.apple.com</section>
  21. </packet>
  22.  
  23. <packet>
  24. <section>2</section>
  25. <section>1.002168000</section>
  26. <section>10.0.2.15</section>
  27. <section>172.16.0.1</section>
  28. <section>DNS</section>
  29. <section>73</section>
  30. <section>Standard query 0x2dfd A www.apple.com</section>
  31. </packet>
  32.  
  33. <packet>
  34. <section>3</section>
  35. <section>2.004533000</section>
  36. <section>10.0.2.15</section>
  37. <section>172.16.0.1</section>
  38. <section>DNS</section>
  39. <section>73</section>
  40. <section>Standard query 0x2dfd A www.apple.com</section>
  41. </packet>
  42.  
  43. ...

Wspomniane czasy są ukryte między znacznikami <section></section> na "drugiej pozycji" w części <packet></packet> (czyli w tym przypadku są to: 0.000000000; 1.002168000; 2.004533000; itd.). Normalnie z wyciągnięciem tych czasów problemu by nie było, gdyby miały one jakiś swój znacznik, a tutaj, dla każdej informacji w <packet> są te same znaczniki (jak widać zawsze <section>, mimo że tam są przechowywane różne informacje, m.in.: LP; czasy, IP nadawcy, IP odbiorcy, itd.). Takim kodem nie da rady wyciągnąć tych czasów (wyciąga tylko informację z pierwszego <section>, czyli LP.), może ktoś pomóc, jak to zrobić? Nie mam doświadczenia, bawię się XMLem pierwszy raz.
  1. $pakiety = simplexml_load_file('dane/pakiety.xml');
  2.  
  3. foreach($pakiety -> packet as $sec)
  4. {
  5. echo 'Czas: '.$sec -> section.'';
  6. echo '<hr/>';
  7. }

Z góry dziękuję
pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. foreach($pakiety -> packet as $sec)
  2. {
  3. echo '<pre>';print_r($sec->children());
  4. }
Go to the top of the page
+Quote Post
jg44
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 14
Dołączył: 14.07.2011
Skąd: Gliwice / Wrocław

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


No i rewelacja, dziękuję Ci bardzo. smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:22