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ę:
<?xml version="1.0"?> <psml version="0" creator="wireshark/1.8.3"> <structure> <section>No.</section> <section>Time</section> <section>Source</section> <section>Destination</section> <section>Protocol</section> <section>Length</section> <section>Info</section> </structure> <packet> <section>1</section> <section>0.000000000</section> <section>10.0.2.15</section> <section>172.16.0.1</section> <section>DNS</section> <section>73</section> <section>Standard query 0x2dfd A www.apple.com</section> </packet> <packet> <section>2</section> <section>1.002168000</section> <section>10.0.2.15</section> <section>172.16.0.1</section> <section>DNS</section> <section>73</section> <section>Standard query 0x2dfd A www.apple.com</section> </packet> <packet> <section>3</section> <section>2.004533000</section> <section>10.0.2.15</section> <section>172.16.0.1</section> <section>DNS</section> <section>73</section> <section>Standard query 0x2dfd A www.apple.com</section> </packet> ...
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.
$pakiety = simplexml_load_file('dane/pakiety.xml'); foreach($pakiety -> packet as $sec) { }
Z góry dziękuję
pozdrawiam.