Dokumente zusammenführen via PHP
frankx
- xml
Hallo,
weiß jemand, ob es mit simpleXML eine Möglichkeit gibt, zwei XML-Dokumente gleicher Struktur zusammenzusbringen? Oder brauchts dafür DOM?
xml1:
<?xml...>
<root>
<element1>
<a>
<b>
<c>
</element1>
etc. bis 4
</root>
xml2:
<?xml...>
<root>
<element5>
<a>
<b>
<c>
</element5>
etc... bis 10
</root>
Am Ende dann alle in einem
xml-zusammen:
<?xml...>
<root>
<element1>
<a>
<b>
<c>
</element1>
etc. bis 10
</root>
Dank und Gruß, Frankx
Hallo frankx.
weiß jemand, ob es mit simpleXML eine Möglichkeit gibt, zwei XML-Dokumente gleicher Struktur zusammenzusbringen? Oder brauchts dafür DOM?
Da ich mich gerade selbst mit Letzterem befasse, rate ich dir zu diesem.
Für dein Vorhaben musst du schließlich einen komplett neuen Dokumentenbaum aufbauen, was mit simplexml so nicht möglich ist.
Wenn nötig, kannst du ja bestehende simplexml-Objekte zum DOM überführen.
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo Ashura,
danke für den Tipp. Parallel hatte ich schon ein bissel weiter im Netz gestöbert und fazitiert, dass es alles nicht so simpel zu sein scheint (also simpleXML kanns wohl nicht). Da wäre ich mit copy/paste fast für den Anfang besser beraten, denn ich muss vermutlich die komplette Struktur mit DOM auseinandernehmen und wieder zusammenbauen, oder kann mensch komplette Knoten mit Unterknoten
<element>
<a>
<b>
<c>
</element>
(es ist wahrlich so simpel) übernehmen mit DOM und an den Dokumentenbaum appenden?
semikolonfreien Dank für den sonntagvormittäglichen Rat,
Frankx
Ps. Über das Semikolon hab ich ja noch öfter sinniert. Ist es nicht auch Interpretationsfrage, ob ich es als Befehlszeichen nehme oder schlicht als Satzende? Bei mir ist das eher eine bitte, das so möglichst auszuführen, wie ich das hoffte eingerichtet zu haben...
Hallo frankx.
Da wäre ich mit copy/paste fast für den Anfang besser beraten, denn ich muss vermutlich die komplette Struktur mit DOM auseinandernehmen und wieder zusammenbauen, oder kann mensch komplette Knoten mit Unterknoten […] (es ist wahrlich so simpel) übernehmen mit DOM und an den Dokumentenbaum appenden?
Könntest du die Frage neu formulieren? Ich habe keine Ahnung, was du eigentlich fragen wolltest.
Ps. Über das Semikolon hab ich ja noch öfter sinniert. Ist es nicht auch Interpretationsfrage, ob ich es als Befehlszeichen nehme oder schlicht als Satzende?
Sprache ist immer eine Interpretationsfrage. Aber wenn man sich in einem bestimmten Sprachraum bewegt, sollte man der Höflichkeit halber dessen übliche Gegebenheiten annehmen und ggf. anwenden. Bei uns ist es nun einmal üblich, einen Satz mit einem Punkt, einem Ausrufungs- oder einem Fragezeichen zu beenden. Ein Semikolon ist eine Lesepause und impliziert eine darauf folgende Sinneinheit, welche sich auf das vor dem Semikolon befindliche bezieht. Mit Semikolon allein ist der Satz noch nicht beendet.
Bei mir ist das eher eine bitte, das so möglichst auszuführen, wie ich das hoffte eingerichtet zu haben...
Ja, das ist Programmierung.
Aber nicht menschliche Sprache. (Zumindest in den hiesigen Breiten- und Längengraden.)
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo Ashura,
Könntest du die Frage neu formulieren? Ich habe keine Ahnung, was du eigentlich fragen wolltest.
Zwei XML-Files mit gleicher Struktur und verschiedenen Inhalten zusammenführen (Kontodaten, die in regelmäßigen Abständen zu dem gesamten Datensatz hinzugefügt werden sollen). Ich glaube mit http://php.rinet.ru/manual/de/ref.simplexml.php#48814 wird der simpelste Weg beschrieben. Da Neuling mit PHPs xml-DOM Funkttionen nicht so ganz einleuchtend. Ich hatte halt gehofft, dass simpleXML das auch möglich macht (von wegen simpel), aber simpleXML eben simple.
Dank und Gruß, Frankx
Mit Semikolon allein ist der Satz noch nicht beendet.
Was ich in der Regel damit auszudrücken versuchte.
Hallo,
Mit Semikolon allein ist der Satz noch nicht beendet.
Was ich in der Regel damit auszudrücken versuchte.
Dieses Wochenende schient der Rechtschreibung zugetan zu sein. ;-)
----
Mit dem Semikolon kann man gleichrangige (nebengeordnete)
Teilsätze oder Wortgruppen voneinander abgrenzen. Mit dem
Semikolon drückt man einen höheren Grad der Abgrenzung aus als
mit dem Komma und einen geringeren Grad der Abgrenzung als
mit dem Punkt.
-----
Grüße
Thomas
Hallo,
weiß jemand, ob es mit simpleXML eine Möglichkeit gibt, zwei XML-Dokumente gleicher Struktur zusammenzusbringen?
Ansatz:
<?php
$output="";
$test1=simplexml_load_file("test1.xml");
$test2=simplexml_load_file("test2.xml");
$xml1=$test1->xpath("/root/*");
$xml2=$test2->xpath("/root/*");
while(list(,$node)=each($xml1))$output.=$node->asXML()."\n";
while(list(,$node)=each($xml2))$output.=$node->asXML()."\n";
$output='<?xml version="1.0"?>'."\n<root>\n".$output."</root>\n";
file_put_contents("output.xml",$output);
?>
MfG, Thomas
Hallo Thomas.
$xml1=$test1->xpath("/root/*");
$xml2=$test2->xpath("/root/*");
OK, um XPath habe ich bisher noch einen großen Bogen gemacht.
Damit ist natürlich einiges mehr machbar. Selbst mit simplexml.
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo,
OK, um XPath habe ich bisher noch einen großen Bogen gemacht.
Damit ist natürlich einiges mehr machbar. Selbst mit simplexml.
xpath() ist eine SimpleXML-Methode.
MfG, Thomas
Hallo Thomas.
OK, um XPath habe ich bisher noch einen großen Bogen gemacht.
Damit ist natürlich einiges mehr machbar. Selbst mit simplexml.xpath() ist eine SimpleXML-Methode.
Ja, ist mir bewusst.
Doch ich bin nicht mit XPath vertraut, um diese Methode (und natürlich die entsprechenden Methoden im DOM) sinnvoll anwenden zu können.
Einen schönen Sonntag noch.
Gruß, Ashura