Einzelnen Beitrag anzeigen
  #1  
Alt 16.12.2015, 23:35:44
wildsau wildsau ist offline
Anfänger
 
Registriert seit: Dec 2015
Alter: 54
Beiträge: 1
XML Datei auslesen und in Variable speichern

Hallo

ich habe eine XML Datei aus der ich Daten auslesen möchte und in Variablen schreiben möchte.

Das Auslesen funktioniert so weit, aber wie bekommen ich die Daten in eine Variable?

So schaut die XML Ausgabe aus

Code:
<?xml version="1.0" encoding="UTF-8"?>

-<presets>


-<preset id="1">


-<ContentItem isPresetable="true" sourceAccount="" location="4188" source="INTERNET_RADIO">

<itemName>Antenne 1 Hit Radio</itemName>

</ContentItem>

</preset>


-<preset id="2">


-<ContentItem isPresetable="true" sourceAccount="" location="7297" source="INTERNET_RADIO">

<itemName>DIE NEUE 107.7 FM</itemName>

</ContentItem>

</preset>


-<preset id="3" updatedOn="1449651242" createdOn="1449651242">


-<ContentItem isPresetable="true" sourceAccount="" location="http://api.deezer.com/user/me/flow" source="DEEZER" type="tracklistRadio">

<itemName>##TRANS_flow##</itemName>

</ContentItem>

</preset>

</presets>
Hier mein PHP Script

Code:
<?

$BoseSoundTouchSystemIP = "192.168.0.52";

$URLString = "presets";

$SystemAvailable = false;
$SystemAvailable = (boolean)Sys_Ping($BoseSoundTouchSystemIP, 1000);
if ($SystemAvailable == false)
	{
	echo "Bose SoundTouch System ist nicht verfügbar!";
	}
else
	{
	// Curl Get
	$Curl = curl_init();

	curl_setopt_array($Curl, array(
				       	CURLOPT_URL => 'http://'.$BoseSoundTouchSystemIP.':8090/'.$URLString,
			   	    	CURLOPT_HEADER => 0,
			      	 	CURLOPT_RETURNTRANSFER => 1
			       		));

	$Response = curl_exec($Curl);

	$ResponseUTF8 = utf8_decode($Response);
	echo "Response: ".$ResponseUTF8."\n\n";
echo 'http://'.$BoseSoundTouchSystemIP.':8090/'.$URLString."\n\n";
	$XMLData = new SimpleXMLElement ($Response);


///////////////////////////
}
$xml = $XMLData;
$vals = array();
RecurseXML($xml,$vals);
foreach($vals as $key=>$value)
  print("{$key} = {$value}<BR>\n");
function RecurseXML($xml,&$vals,$parent="") {

  $childs=0;
  $child_count=-1;
  $arr=array();
        foreach ($xml->children() as $key=>$value) {
                if (in_array($key,$arr)) {
                        $child_count++;
                } else {
                        $child_count=0;
                }
                $arr[]=$key;
                $k=($parent == "") ? "$key.$child_count" : "$parent.$key.$child_count";
                $childs=RecurseXML($value,$vals,$k);
                if ($childs==0) {
                        $vals[$k]= (string)$value;
                }
        }
}
?>
und als Ergebnis bekomme ich die Daten welche ich als Variable speichern möchte

Response: Antenne 1 Hit RadioDIE NEUE 107.7 FM##TRANS_flow##

http://192.168.0.52:8090/presets

preset.0.ContentItem.0.itemName.0 = Antenne 1 Hit Radio
preset.0.ContentItem.0 =
preset.0 =
preset.1.ContentItem.0.itemName.0 = DIE NEUE 107.7 FM
preset.1.ContentItem.0 =
preset.1 =
preset.2.ContentItem.0.itemName.0 = ##TRANS_flow##
preset.2.ContentItem.0 =
preset.2 =
Mit Zitat antworten