alpe: DOMDocument - echo nodeValue -> keine Ausgabe

Hallo,

ich habe ein kleines Problem, von dem ich gar nicht erwartet hatte es zu bekommen...

Ich habe ein XML File das sieht in etwa so aus

  
<?xml version="1.0"?>  
<authors>  
  <author>  
    <name>horst</name>  
  </author>  
  <author>  
    <name>ralf</name>  
  </author>  
</authors>  

Der Code dazu in etwa so:

	  
        $doc = new DOMDocument('1.0','UTF-8');  
	$db->preserveWhiteSpace = false;  
	$doc->formatOutput = true;  
	$doc->load('xml-test.xml');  
	$authors = $doc->getElementsByTagName('author');  
	$author = $authors->item(0);  
	$name = $author->firstChild;  
	echo $name->nodeValue;  

Wenn ich das jetzt ausführe bekomme ich nichts außer einem Zeilenumbruch und ein paar Leerzeichen angezeigt.
Tatsächlich sollte da aber 'horst' angezeigt werden.

Ich steh völlig auf dem Schlauch wo da jetzt das Problem liegt...
Die ausgabe von nodeType ergibt korrekterweise 3.

Kann mir jemand sagen was wo da der Fehler liegt? Ich sehs einfach nicht.

Gruß
alpe

  1. Hi,

    <author>
        <name>horst</name>

    $authors = $doc->getElementsByTagName('author');
    $author = $authors->item(0);
    $name = $author->firstChild;
    echo $name->nodeValue;

    Wenn ich das jetzt ausführe bekomme ich nichts außer einem Zeilenumbruch und ein paar Leerzeichen angezeigt.
    Tatsächlich sollte da aber 'horst' angezeigt werden.

    Nein, sollte es nicht. name ist erst das zweite Kindelement von author - das erste ist der Textknoten, der sich zwischen den beiden befindet.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Nein, sollte es nicht. name ist erst das zweite Kindelement von author - das erste ist der Textknoten, der sich zwischen den beiden befindet.

      MfG ChrisB

      Der Zeilenumbruch ...ach verdammt das alte leid...

  2. Hallo,

    $author->nodeValue gibt "horst" zzgl. der Whitespaces.

    Gruß

    jobo

  3. Hallo,

    $db->preserveWhiteSpace = false;

    bist Du sicher, das Du $db schreiben willst? Das sollte dein Problem mit den Zeilenumbrüchen beheben.

    Grüße Sebastian

    --
    Das größte Übel der heutigen Jugend besteht darin, dass man nicht mehr dazugehört.
    Salvador Dali