PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Shop
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Contest-Bereich - 2D, 3D & Fotografie
2D-Contests - Monatscontests, User-Battles, ...
XML Dateien zusammenführen
Beitrag
<blockquote data-quote="TTron" data-source="post: 694598" data-attributes="member: 12678"><p><strong>AW: XML Dateien zusammenführen</strong></p><p></p><p>Ok, ok .. nicht so schnell und so viele Fachbegriffe <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /> ... ich habe zwar ein php Script das mit Hilfe von SimpleXML die Dateien holt und ablegt und das kann ich mehr oder weniger gut auch anpassen, aber selbst ein bauen ist eher problematisch, da bräuchte ich wohl ein Beispiel, um dann selbst weiter machen zu können <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p><p></p><p>Die Einträge (Eintrag 1, 2 usw.) heißen übrigens alle gleich und unterscheiden sich dann nur im Inhalt der Werte ...</p><p></p><p>*edit*</p><p>Ich habe im Selfhtml Forum etwas gefunden, was meinem Problem schon recht nah kommt ...</p><p></p><p><root></p><p><wert gleichesattribute="schluessel_x" attribute_1="wert_x1" attribute_2="wert_x2"/></p><p><wert gleichesattribute="schluessel_y" attribute_1="wert_y1" attribute_2="wert_y2"/></p><p>...</p><p>...</p><p></root></p><p></p><p>XML-File 2</p><p></p><p><root></p><p><wert gleichesattribute="schluessel_x" attribute_3="wert_x3" attribute_4="wert_x4"/></p><p><wert gleichesattribute="schluessel_y" attribute_3="wert_y3" attribute_4="wert_y4"/></p><p>...</p><p>...</p><p></root></p><p></p><p>[PHP]<?php</p><p></p><p>// Die beiden XML-Dateien einlesen</p><p>$xml1 = simplexml_load_file("1.xml");</p><p>$xml2 = simplexml_load_file("2.xml");</p><p></p><p>// Element-Baum initialisieren</p><p>$data = array();</p><p></p><p>// Erste Datei durchgehen</p><p>foreach($xml1->wert as $wert) {</p><p> // und jedes Element anhand seiner ID (gleiches Attribut)</p><p> // in den Element-Baum einhängen</p><p> $id = (string) $wert['gleichesattribute'];</p><p> $data[$id] = array();</p><p> // Alle Attribute in den Element-Baum übernehmen</p><p> foreach($wert->attributes() as $name => $value) {</p><p> // mit Ausnahme der ID, die ja bereits als Key existiert</p><p> if($name == "gleichesattribute") continue;</p><p> $data[$id][$name] = (string) $value;</p><p> }</p><p>}</p><p></p><p>// Zweite Datei durchgehen</p><p>foreach($xml2->wert as $wert) {</p><p> // und jedes Element anhand seiner ID (gleiches Attribut)</p><p> // in den Element-Baum einhängen, sofern noch nicht vorhanden</p><p> $id = (string) $wert['gleichesattribute'];</p><p> if(!isset($data[$id])) {</p><p> $data[$id] = array();</p><p> }</p><p> // Alle Attribute in den Element-Baum übernehmen</p><p> foreach($wert->attributes() as $name => $value) {</p><p> // mit Ausnahme der ID, die ja bereits als Key existiert</p><p> if($name == "gleichesattribute") continue;</p><p> $data[$id][$name] = (string) $value;</p><p> }</p><p>}</p><p></p><p>// Header für XML-Ausgabe senden</p><p>header("Content-type: application/xml");</p><p></p><p>// XML-Ausgabe generieren</p><p>echo '<root>';</p><p>// Für jedes Element im Element-Baum</p><p>foreach($data as $id => $record) {</p><p> // Den XML-Tag...</p><p> echo '<wert gleichesattribute="' . $id . '" ';</p><p> // ... mit allen Attributen generieren</p><p> foreach($record as $name => $value) {</p><p> echo $name . '="' . $value . '" ';</p><p> }</p><p> echo '/>';</p><p>}</p><p>echo '</root>';</p><p></p><p>?>[/PHP]</p><p></p><p>Das fügt die Inhalte den passenden Werten hinzu, was ich aber habe ist das hier:</p><p></p><p>[CODE]</p><p>XML File 1</p><p></p><p><AlleSpiele></p><p> <Spielklasse></p><p> <Name>KL Herren</Name></p><p> </Spielklasse></p><p> <Spiel></p><p> <Attribut1></p><p> <...></p><p> <Attribut22></p><p> </Spiel></p><p> <Spiel></p><p> <...></p><p> </Spiel></p><p>usw.</p><p></AlleSpiele></p><p></p><p></p><p>XML-File 2</p><p></p><p><AlleSpiele></p><p> <Spielklasse></p><p> <Name>KL Damen</Name></p><p> </Spielklasse></p><p> <Spiel></p><p> <Attribut1></p><p> <...></p><p> <Attribut22></p><p> </Spiel></p><p> <Spiel></p><p> <...></p><p> </Spiel></p><p>usw.</p><p></AlleSpiele></p><p>[/CODE]</p><p></p><p>Davon gibt es dann 10 Dateien, die alle so aufgebaut sind. Vom Prinzip her reicht es wenn ich nur die Spiele mit den Attributen in die neue Datei zusammenführen kann, aber ideal wäre der komplette Inhalt, da man so auch noch die Liga(Spielklasse) abfragen kann.</p><p></p><p>Wie kann ich den Lösungsvorschlag verändern um mein Problem zu lösen bzw. kann ich den überhaupt verwenden?</p><p></p><p></p><p>Gruß</p><p>Jens</p></blockquote><p></p>
[QUOTE="TTron, post: 694598, member: 12678"] [b]AW: XML Dateien zusammenführen[/b] Ok, ok .. nicht so schnell und so viele Fachbegriffe ;) ... ich habe zwar ein php Script das mit Hilfe von SimpleXML die Dateien holt und ablegt und das kann ich mehr oder weniger gut auch anpassen, aber selbst ein bauen ist eher problematisch, da bräuchte ich wohl ein Beispiel, um dann selbst weiter machen zu können ;) Die Einträge (Eintrag 1, 2 usw.) heißen übrigens alle gleich und unterscheiden sich dann nur im Inhalt der Werte ... *edit* Ich habe im Selfhtml Forum etwas gefunden, was meinem Problem schon recht nah kommt ... <root> <wert gleichesattribute="schluessel_x" attribute_1="wert_x1" attribute_2="wert_x2"/> <wert gleichesattribute="schluessel_y" attribute_1="wert_y1" attribute_2="wert_y2"/> ... ... </root> XML-File 2 <root> <wert gleichesattribute="schluessel_x" attribute_3="wert_x3" attribute_4="wert_x4"/> <wert gleichesattribute="schluessel_y" attribute_3="wert_y3" attribute_4="wert_y4"/> ... ... </root> [PHP]<?php // Die beiden XML-Dateien einlesen $xml1 = simplexml_load_file("1.xml"); $xml2 = simplexml_load_file("2.xml"); // Element-Baum initialisieren $data = array(); // Erste Datei durchgehen foreach($xml1->wert as $wert) { // und jedes Element anhand seiner ID (gleiches Attribut) // in den Element-Baum einhängen $id = (string) $wert['gleichesattribute']; $data[$id] = array(); // Alle Attribute in den Element-Baum übernehmen foreach($wert->attributes() as $name => $value) { // mit Ausnahme der ID, die ja bereits als Key existiert if($name == "gleichesattribute") continue; $data[$id][$name] = (string) $value; } } // Zweite Datei durchgehen foreach($xml2->wert as $wert) { // und jedes Element anhand seiner ID (gleiches Attribut) // in den Element-Baum einhängen, sofern noch nicht vorhanden $id = (string) $wert['gleichesattribute']; if(!isset($data[$id])) { $data[$id] = array(); } // Alle Attribute in den Element-Baum übernehmen foreach($wert->attributes() as $name => $value) { // mit Ausnahme der ID, die ja bereits als Key existiert if($name == "gleichesattribute") continue; $data[$id][$name] = (string) $value; } } // Header für XML-Ausgabe senden header("Content-type: application/xml"); // XML-Ausgabe generieren echo '<root>'; // Für jedes Element im Element-Baum foreach($data as $id => $record) { // Den XML-Tag... echo '<wert gleichesattribute="' . $id . '" '; // ... mit allen Attributen generieren foreach($record as $name => $value) { echo $name . '="' . $value . '" '; } echo '/>'; } echo '</root>'; ?>[/PHP] Das fügt die Inhalte den passenden Werten hinzu, was ich aber habe ist das hier: [CODE] XML File 1 <AlleSpiele> <Spielklasse> <Name>KL Herren</Name> </Spielklasse> <Spiel> <Attribut1> <...> <Attribut22> </Spiel> <Spiel> <...> </Spiel> usw. </AlleSpiele> XML-File 2 <AlleSpiele> <Spielklasse> <Name>KL Damen</Name> </Spielklasse> <Spiel> <Attribut1> <...> <Attribut22> </Spiel> <Spiel> <...> </Spiel> usw. </AlleSpiele> [/CODE] Davon gibt es dann 10 Dateien, die alle so aufgebaut sind. Vom Prinzip her reicht es wenn ich nur die Spiele mit den Attributen in die neue Datei zusammenführen kann, aber ideal wäre der komplette Inhalt, da man so auch noch die Liga(Spielklasse) abfragen kann. Wie kann ich den Lösungsvorschlag verändern um mein Problem zu lösen bzw. kann ich den überhaupt verwenden? Gruß Jens [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Der grüne Frosch hüpft über die Hügel an den Bäumen vorbei in die Höhle. Bitte nenne das vierte Wort!
Antworten
Start
Forum
Contest-Bereich - 2D, 3D & Fotografie
2D-Contests - Monatscontests, User-Battles, ...
XML Dateien zusammenführen
Oben