XML Elementsnamen in Array speichern

robertoel

Grünschnabel
Hallo,

ich will mir aus einer XML Datei alle Namen der Elemente ausgeben die es gibt. Meine XML Datei sieht so aus:

Code:
<?xml version="1.0" encoding="utf-8"?>
<language>
			<logout>Abmelden</logout>
			<do>Bitte einloggen:</do>
			<welcome>Text</welcome>
			<welcome_txt>,Text</welcome_txt>
			<voc_choose>Text</voc_choose>
			<voc_create>Text</voc_create>
			<voc_manage>Text</voc_manage>
			<voc_share>Text</voc_share>
			<usersettings>Text</usersettings>
			<settings>Text</settings>

</language>

Er soll mir jetzt in einem Array die Wörter logout, do, welcome usw. speichern. Ich weiß aber nicht wie ich an diese Daten rankomm! Ich hoffe mir kann jemand helfen!

Danke
Robert
 
Hallo,
meinst du das etwa so?
PHP:
<?
  $file = file_get_contents('test.xml');
  
  if (preg_match('/<language>(.*?)<\/language>/s', $file, $file)){
	if (preg_match_all('/<([a-z_]+)>/s', $file[0], $result)){
	  for ($x = 1; $x < count($result); $x++){
		for ($i = 1; $i < count($result[$x]); $i++){
		  $elemente[] = $result[$x][$i];
		}
	  }
	}
  }
  
  foreach ($elemente as $element){
	echo $element.'<br>';
  }
?>

mfg
forsterm
 
Vielen dank das erste funktioniert bei dem zweiten hab ich nur eine Funktion gefunden aber dann müsste ich die xml Datei umbauen
 
Gumbo hat gesagt.:
Probier es doch mal mit den SimpleXML-Funktionen. Einführende Beispiele findest du in der Dokumentation.
Ist das eigentlich eine Exntension, oder ist diese Nativ in PHP integreit udn man kann sie nutzten?

Irgendwie ist diese Klasse bzw diese Funktionen sehr nützlich oder? Dann muss man doch eigentlcih garnicht mehr selbst Dateien laden und einzelne Elemente per RegExp herausmatchen!?

Verstehe ich das so richtig?
 
@forsterm:

Ich versteh nicht ganz was dieser Teil hier macht. Kannst dus mir vielleicht erkären? Danke

PHP:
for ($x = 1; $x < count($result); $x++){
        for ($i = 1; $i < count($result[$x]); $i++){
          $elemente[] = $result[$x][$i];
        }
}
 
robertoel hat gesagt.:
@forsterm:

Ich versteh nicht ganz was dieser Teil hier macht. Kannst dus mir vielleicht erkären? Danke

PHP:
for ($x = 1; $x < count($result); $x++){
for ($i = 1; $i < count($result[$x]); $i++){
$elemente[] = $result[$x][$i];
}
}

Hallo,
dieser Teil screibt die Daten aus dem mehrdimensionalen Array $result[] in das ein dimensionale Array $elemente[].

mfg
forsterm
 
Zurück