Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wyświetleniem atrybutów i wartości.
zaworek
post 4.11.2012, 17:16:49
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 27.06.2006

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


Witam,

nie potrafię dobrać się do Spectrum value i odpowiadającym im PathEffect.



  1. <?xml version="1.0"?>
  2. <Path_Effect_Table version="1">
  3. <Path name="MOD1">
  4. <WhenDone>2012-10-25 13:01:49</WhenDone>
  5. <Spectrum value="8.35E+008">
  6. <PathEffect level="0">-11</PathEffect>
  7. </Spectrum>
  8. <Spectrum value="8.37E+008">
  9. <PathEffect level="0">-15</PathEffect>
  10. </Spectrum>
  11. </Path>
  12. <Path name="MOD2">
  13. <WhenDone>2012-10-25 12:39:37</WhenDone>
  14. <Spectrum value="9.35E+008">
  15. <PathEffect level="0">-12</PathEffect>
  16. </Spectrum>
  17. <Spectrum value="9.37E+008">
  18. <PathEffect level="0">-17</PathEffect>
  19. </Spectrum>
  20. </Path>
  21. </Path_Effect_Table>


Poniższy kod wyświetla mi Path name oraz dubluje Spectrum value.

  1. $xml = simplexml_load_file("test.xml"); //wczytanie pliku xml
  2.  
  3. foreach ($xml->Path as $name)
  4. {
  5. foreach ($name->attributes() as $atr)
  6. {
  7. echo $atr.'<br />';
  8. }
  9. foreach ($xml->Path->Spectrum as $value)
  10. {
  11. foreach ($value->attributes() as $val)
  12. {
  13. echo $val.'<br />';
  14. }
  15. }
  16. }


Otrzymuję :

MOD1
8.35E+008
8.37E+008
MOD2
8.35E+008 //źle
8.37E+008 //źle

A chciałbym:

Kod
MOD1
8.35E+008 -11
8.37E+008 -15
MOD2
9.35E+008 -12
9.37E+008 -17


Domyślam się, że trzeba wstwić do pętli poniższe, nie za bardzo mi to jedank wychodzi.

  1. //dla spectrum value
  2. foreach ($xml->Path->Spectrum as $value)
  3. //dla wartości w PathEffect
  4. foreach ($xml->Path->Spectrum->PathEffect as $wartosc)


Proszę o sugestię jak tego dokonać.

Ten post edytował zaworek 4.11.2012, 17:40:50
Go to the top of the page
+Quote Post
cudny
post 16.11.2012, 23:13:04
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


  1. $xml = simplexml_load_file("c.xml");
  2. $name = false;
  3. foreach($xml as $path) {
  4. if($name != $path['name']) {
  5. $name = $path['name'];
  6. echo $name;
  7. echo '<br />';
  8. }
  9. foreach($path->Spectrum as $s) {
  10. echo $s['value'].' '.$s->PathEffect."<br />";
  11. }
  12. }


Zanim cokolwiek wykonasz na simplexml to poczytaj o nim i zobacz najpierw co wyświetla echo '<pre>'; print_r($xml);
A osobiście jednak jestem zwolennikiem DOM - jest wydajniejszy przy większych plikach.

Za gotowca chcę pomógł !


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
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 Wersja Lo-Fi Aktualny czas: 27.04.2024 - 06:44