xml to plain text

rernanded

Erfahrenes Mitglied
Moin,
wie kann ich folgende xml-Daten am besten in plain text konvertieren?


<root>

<content>

{ "messages" : [
{
"key" : "123",
"value" : "wow",
"units" : "000"
},
{
"key" : "456",
"value" : "pow",
"units" : "äöü"
},
{
"key" : "789",
"value" : "now",
"units" : "ßßß"
},
[
{
"key" : "123456789",
"value" : "pillepalle",
"units" : "äöüßßß000"
}
]
]
}

</content>

</root>


Resultat/Beispiel:

key: 123
value: wow
units: 000

Und alternativ so:

123
wow
000


usw.

MONI
 
Zuletzt bearbeitet:
Schon mal in der Doku nachgesehen? Z.B. hier: PHP: Basic SimpleXML usage - Manual
Also im Sinne von:
Nutze die XML-Funktionen, um alles was im "Content"-Node/Tag steht, abzuholen, und danach stumpfes JSON-Gehampel

EDIT: Und OP gilt als "erfahrenes Mitglied". Sollte man meinen, sie wüsste mittlerweile wie man Code-Tags verwendet...

EDIT2: Weil mit richtiger Einrückung erkennt man nämlich auch gleich ne Gurke in den Daten
XML:
<root>
    <content>
        { "messages" :
            [
            {"key" : "123", "value" : "wow", "units" : "000"},
            {"key" : "456", "value" : "pow", "units" : "äöü"},
            {"key" : "789", "value" : "now", "units" : "ßßß"},
                [
                {"key" : "123456789", "value" : "pillepalle", "units" : "äöüßßß000"}
                ]
            ]
        }
    </content>
</root>
 
Zuletzt bearbeitet:
Okay, geschenkt, ich stell' die Frage anders da mein Beispiel etwas zu unterkomplex ist und tatsächlich einen kleinen Fehler enthält.
Wie erhalte ich aus einer xml-Datei mit drei Millionen Zeilen die Baumstruktur ohne die einzelnen tatsächlichen Werte - also ohne 123, wow und 000? Nur alle Elemente und ihre Attribute.
HTML:
<root>

<content>

{ "messages" : [
          {
                         "key" : "123",
                         "value" : "wow",
                         "units" : "000"
          },

...

</content>
</root>

Zusätzliches Problem, wie ermittle ich dann die Abhängigkeiten der Eelemente und Attribute voneinander?

In meinem Ausgangsbeispiel also die Abhängigkeiten von messages und key, value, units wobei letztere teils nochmals gesondert in zig Verschachtelungen vorhanden sind?
Das habe ich oben versucht anzudeuten, ist aber noch viel komplexer. Ich kann leider keinen Link zur Datei zur Verfügung stellen weil ich nicht weiß welche womöglich vertraulichen Daten enthalten sind.


MONI
 
Zuletzt bearbeitet:
Hallo Moni,
Du schreibst "Baumstruktur", in deinem letzten Beispiel ist das Array "messages" eindimensional, heißt das jetzt, dass es noch mehr Ebenen gibt, also dieses Array mehrdimensional?

Und was meinst Du hiermit:
wie ermittle ich dann die Abhängigkeiten der Werte voneinander?

In meinem Ausgangsbeispiel also die Abhängigkeit von "key" : "123" und "key" : "123456789"?
 
HTML:
<root>

<content>

{ "messages" : [
          {
                         "key" : "123",
                         "value" : "wow",
                         "units" : "000"
          },

...

</content>
</root>


Grundsätzlich sind diese Elemente/Attribute vorhanden (s.o.).

key, value, units aber in zig Verschachtelungen.
Z.B. key gibt es rund 77.000 mal.
Ich habe leider keine Doku da die Datei schon älter ist.

Ich erkenne aber z.B. Städtenamen und Personennamen.

Denkbar ist folgende Struktur (vermutlich) - aber in zig mehr Ebenen:

Hessen
Meyer
Umsatz

Frankfurt
Fachhandel
3.000

Westend
rot
123


Diese Datei ist vom Januar 2005, dann kommt die vom Februar 2005 usw. monatlich. Am Ende muss ich über zehn Jahre ein Auswertung schreiben. Und die Ursprungsdateien sind in bz2 komprimiert. Die habe ich bereits in zumindest jene vorliegenden xml verwandelt. Keine Ahnung ob das anders gegangen wäre.


MONI
 
Zuletzt bearbeitet:
OK. In deinen Beispielen sehe ich XML und JSON gemischt. Und womit Du das auswerten kannst, wurde schon gepostet: Zuerst das XML mit simpleXML und das JSON indem Du die Struktur, die in <content> steht, mit json_decode auspackst, dann hast Du ein verschachteltes Array und kannst die Elemente key, value und units ausgeben.
 
Das heisst, es geht eigentlich nicht um XML, sondern um JSON?

EDIT: Semper ist mir im Prinzip zuvor gekommen....

Hallo Moni,
Du schreibst "Baumstruktur", in deinem letzten Beispiel ist das Array "messages" eindimensional, heißt das jetzt, dass es noch mehr Ebenen gibt, also dieses Array mehrdimensional?
In Moni's Original-Beispiel ist das 4. Element des JSON wiederum ein (namenloses?) Array (mit halt nur einem Element).
Siehe mein "eingerücktes" Beispiel
 
Nein, beides, dies ist XML:
Code:
<root>
    <content>
    </content>
</root>
Und dies ist JSON:
Code:
{ "messages" : [
    {
        "key" : "123",
        "value" : "wow",
        "units" : "000"
    },
   {
usw.
 
So wie ich es aber verstanden habe, ist es der JSON, der die 3 Millionen "Zeilen" hat, und nicht das XML.
Weil in dem Fall ist das XML genau ein Knoten, der "Content", mit einem String
 

Neue Beiträge

Zurück