wie bestimme ich das ende einer XML Datei -> a la Java hasNext()

mkoeni1

Erfahrenes Mitglied
Hallo zusammen,

ich möchte mit einer for-Schleife dynamisch über eine XML-Datei gehen und diese bis zum letzten Element ausgeben:

PHP:
 for($i = 0; $i <=  ; $i++)


Kennt einer die Anweisung um bis zum letzten element zu gelangen. In Java geht das mit hasNext(); oder so ähnlich.


so sieht eine einfache xml-Datei aus.
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<!--externe DTD im selben Verzeichniss -->
<!DOCTYPE bewertungen SYSTEM "my.dtd">

<bewertungen> 

        <frage>1. bla  ?

        </frage>

        <frage>2. bla  ?

        </frage>

        <frage>3. bla  ?

        </frage>

        <frage>4. bla  ?

        </frage>
        
        <frage>5. bla ?

        </frage>
</bewertungen>


Weiss jmd. rat ?


Matze
 
Zuletzt bearbeitet:
Gumbo hat gesagt.:
Du könntest mit den DOM-Funktionen arbeiten beispielsweise alle Elemente desselben Tagnamens auswählen (siehe DOMElement_>getElementsByTagName()).

kannst du mir ein Bsp. nennen ? Ich habe ein paar sachen probiert, aber ...
Code:
$fragen = simplexml_load_file('bewertungen.xml'); 
    foreach($fragen->frage as $frage) {  
        echo "<input type=\"radio\" name=\"frage\" value=\"frage\">{$frage->text}"; 

        echo "<br />";
    }

aber Simplexml hat nichts mit Dom zu tun.

Viele Grüße Matze
 
Hier hast du ein kleines Beispiel mit simple_xml:


news.php
PHP:
    $filename = 'news.xml';
    
    if(file_exists($filename)) {
        $xml = simplexml_load_file($filename);
        if($xml) {
            foreach($xml->news as $news) {
                 echo $news->datum."<br />"; 
                echo $news->title."<br />"; 
                echo $news->news."<br />"; 
                echo $news->author."<br /><br />"; 
                }
        } else {
            echo '        <p>Die Datei names '. $filename .' konnte nicht geöffnet werden</p>';
        }
    }


news.xml
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<system>
<news>
    <datum>05-08-05</datum>
    <title>News Titel 1</title>
    <news>NEWS NEWS NEWS</news>
    <author>Name</author>
</news>
<news>
    <datum>05-08-05</datum>
    <title>News Titel 2</title>
    <news>NEWS NEWS NEWS</news>
    <author>Name</author>
</news>
</system>


Und mit DOM kommst du so an die einzelnen Elemente:
PHP:
$doc = new DOMDocument;
$doc->load('news.xml');

$title = $doc->getElementsByTagName('title');
 
Zuletzt bearbeitet:
Zurück