SimpleXML Neuling benötigt Hilfe zu getName()

marcel_m

Mitglied
Hallo zusammen,

ich "vereinfache" mein Problem einmal. Ich habe eine XML Datei erstellt und möchte den Namen des Tags bestimmen, erhalte jedoch dauernd eine fehlermeldung:

Fatal error: Call to undefined method SimpleXMLElement::getName() in C:\Programme\xampp\htdocs\Pest\index.php on line 18

Ich meine die Methode getName() gibts doch ...

Die PHP Datei lautet folgendermaßen:
PHP:
$xmlDatei = "test.xml";

$xml = simplexml_load_file($xmlDatei);

foreach ($xml->children() as $child)
{
    echo $child->getName();
}

Und die XML Datei:

Code:
<?xml version='1.0' standalone='yes'?>
<shop>
  <text>
  	<format font="arial" size="20">
  	   Ich bin Text und möchte angezeigt werden.
  	</format>
  </text>
</shop>

Mein Ziel wäre, dass "text" ausgegeben wird...

Ich Danke euch für eure Antworten im Voraus


Marcel
 
Versuche es einmal so:

Inhalt der xml Datei:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
    <shop>
       <text>      
          Ich bin Text und möchte angezeigt werden.      
       </text>
    </shop>
    <shop>
       <text>      
          Ich bin ein neuer Text und möchte angezeigt werden.      
      </text>
    </shop>
</channel>
</rss>
_______________________________________________________________________________

Inhalt des PHP Script:
PHP:
<?php 
      $file = 'test.xml';
      if(!$xml = simplexml_load_file($file)){
      die("XML-Dokument kann nicht geparst werden!");
      }
      
      foreach ($xml->channel->shop as $text) {
          echo utf8_decode($text->text), '<br />';
      }
?>
 
Vielen Dank für die Antwort,
sie löst aber leider nicht mein Problem, denn ich möchte ja die Beschriftung des Tags (also "text" in diesem Fall ) ausgeben lassen, ohne dass ich im vorhinein die Struktur der XML Datei kenne. Hierbei benötige ich doch die Metode getName(), oder?!

Marcel
 
Hmm, also bei mir (PHP 5.1.2) ist die Methode auch noch nicht implementiert. Scheint noch nicht voll ausgereift zu sein.
 
Kommt das öfters bei PHP vor?
Ich meine in der PHP Doku ist die Methode doch verfügbar.

Gibt es vielleicht eine Alternative, den ich bin auf diese Art von Funktion sehr angewiesen ;-)

Marcel
 
Die Methode getName() gibt es nicht in SimpleXML.

Alternativ kannst Du folgendes verwenden:

PHP:
<?php 
     $file = 'test.xml';
     if(!$xml = simplexml_load_file($file)){
     die("XML-Dokument kann nicht geparst werden!");
     }
     foreach($xml->shop->children() as $key => $value){
        echo $key;
     }
?>
 
Sorry, hiermit revidiere ich meine Aussage die sich auf das im XAMPP
installierte PHP Paket 5.0.4 bezogen hat. Bei der neuen Version von
XAMPP 1.5.3a und PHP 5.1.4 ist "getName()" mit implementiert worden.
 
Zurück