ugrás a tartalomhoz

Hány szermély adatai vannak az XML fájlban (PHP 5, simplexml)

Anonymous · 2006. Jún. 24. (Szo), 03.02
Hi!

Elakadtam egy feladattal, talán van itt valaki, aki tud segíteni.
Szóval, adott egy xml file, amiből ki kéne szednem az adatokat. A szerkezet kötött, sajnos nem tudok változtatni rajta. Valami ilyesmi:
  1. <?xml  version="1.0" encoding="ISO-8859-2"?>  
  2. <root xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  3. <SZEMELYEK>  
  4. <ADATOK>  
  5. <NEV>TAMAS</NEV>  
  6. <SULY>78KG</SULY>  
  7. <MAGASSAG>180CM</MAGASSAG>  
  8. </ADATOK>  
  9. <ADATOK>  
  10. <NEV>KARCSI</NEV>  
  11. <SULY>85KG</SULY>  
  12. <MAGASSAG>187CM</MAGASSAG>  
  13. </ADATOK>  
  14. </SZEMELYEK>  
  15. </root>  
Hozzá a php, ami kiszedné az adatokat:
  1. <?php  
  2.   
  3. if (file_exists('test.xml')) {  
  4.    $xml = simplexml_load_file('test.xml');  
  5.    
  6.     // var_dump($xml);  
  7.   
  8.     echo ($xml->SZEMELYEK->ADATOK->NEV);  
  9. }  
  10.   
  11. else {  
  12.    exit('Failed to open test.xml.');  
  13. }  
  14. ?>   
Ez most egy nagyon alap példa. Abban kéne segítség, hogy hogyan tudnám meghatározni, hogy hány személy adatai vannak a file-ban.
Tehát valahogy megkéne számoltatnom, és utána kiiratni, valahogy így:
  1. <?php  
  2.   
  3. if (file_exists('test.xml')) {  
  4.    $xml = simplexml_load_file('test.xml');  
  5.    
  6.     // var_dump($xml);  
  7.     // Meg kéne határozni, hogy hány személy van  
  8.       
  9.     $i = 0;  
  10.   
  11.     while ($i < $szemelyek_szama)  
  12.     echo ($xml->SZEMELYEK->ADATOK->NEV);  
  13.     $i++;  
  14.   
  15. }  
  16.   
  17. else {  
  18.    exit('Failed to open test.xml.');  
  19. }  
  20. ?>   
Ebben kéne egy kis segítség. Köszi előre is.
 
1

tipp: count()

TeeCee · 2006. Jún. 24. (Szo), 08.36
Hali!

Mivel nincs PHP5-öm, ami kell a simplexml-hez ezért csak egy tipp:
count($xml->SZEMELYEK)
2

Próbáld foreach-el

gnycz · 2006. Jún. 24. (Szo), 09.09
// SzemelyekSzama
$szemelyek_szama = count( $xml->SZEMELYEK->ADATOK );

// Kiiras
foreach( $xml->SZEMELYEK->ADATOK as $szemely )
{
    echo $szemely->NEV."<br />";
}
3

Kukkants rá a többi függvényre is

Anonymous · 2006. Jún. 24. (Szo), 13.15
Pl.
http://hu2.php.net/manual/en/function.simplexml-element-xpath.php
http://hu.php.net/manual/en/function.simplexml-element-children.php

És nyilván a kommentekre is.

XPath példák:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/1431789e-c545-4765-8c09-3057e07d3041.asp

jbt
4

foreach

Anonymous · 2006. Jún. 24. (Szo), 15.11
A megoldás foreach használatával tökéletes, köszönöm szépen!