• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SimpleXML mit 2 Root Nodes

w3bmaster

Neues Mitglied
Hallo zusammen,
ich habe mich hier vor eben registriert und hoffe, dass mir geholfen werden kann.
Falls ich den Thread an der falschen Stelle geöffnet habe, so bitte ich die verantwortlichen es an die richtige Stelle zu verschieben.

Mein Problem ist:
Ich versuche mit SimpleXML eine Datei mit 2 Root Nodes zu bearbeiten allerdings klappt es nicht. Die 2. Root Node wird einfach stehen gelassen.

So sieht die Datei im rohen Zustand aus

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDSs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
</array>
</plist>

es ist store.plist datei und ich glaube soll für Appstore dienen. Was der Kollege damit vor hat weis ich wirklich nicht. Nur ich soll zwischen <array> </array> inhalte einfügen.

Das klappt leider nicht. Wenn ich mein Script laufen lasse, fügt sich der Inhalt zwischen <plist version="1.0"> </plist> ein.

Mein Code dafür sieht in etwa so aus.

PHP:
$xml = simplexml_load_file("katalog/store.plist");
$dergi = $xml->addChild("dict");
$dergi->addChild("key", ("ID"));
$dergi->addChild("string", ($sayi));
$dergi->addChild("key", ("Title"));
$dergi->addChild("string", ($title));
$dergi->addChild("key", ("Cover URL"));
$dergi->addChild("string", ($httppfad.$_SESSION['coverlink']));
$dergi->addChild("key", ("Download URL"));
$dergi->addChild("pdf", ($httppfad.$_SESSION['pdflink']));


$handle = fopen("katalog/store.plist", "wb"); 
fwrite($handle, $xml->asXML());
fclose($handle);

hier ist der store.plist zu finden http://sezer.at/plist/katalog/store.plist

Die Daten für den Inhalt kommen von einem Uploadscript.
 
Welche Programmiersprache verwendest Du? JavaScript? Offenbar nicht. Wieso postest Du das dann hier statt unter der richtigen Rubrik PHP. Habe es für dich dorthin geschoben, bitte künftig darauf achten.

Ich würde für diese Aufgabenstellung eher DOMDocument statt simpleXML* nutzen. Mit DOMDocument kann man auch konkrete Elemente ansprechen (PHP: DomDocument::document_element - Manual) und dann den DOM auch entsprechend erweitern/ergänzen (z.B. PHP: DOMNode::appendChild - Manual).
 
Ich bin ganz neu in der Programmierwelt. Habe erstmal mit PHP angefangen und kenne mich da noch nicht wirklich aus. ans DOM Document traue ich mich noch nicht. Ich mach erstmal einfachere sachen und später werde ich mich auch ans schwere wagen.

Was das Problem oben angeht, habe ich selber lösen können.

Es musste nur ein ->array in die 2. Zeile eingefügt werden

$xml = simplexml_load_file("katalog/store.plist");
$dergi = $xml->array->addChild("dict");


jetzt klappt es wunderbar.
 
Zurück
Oben