XML mit PHP parsen
severus
- php
0 ChrisB0 Felix Riesterer
0 severus
0 Mario
Ich habe eine Parser geschrieben der soweit funktioniert. Er erkennt alle notwendigen startElemente und endElemente in der Form:
<tag1>
<utag11>Test zu 11</utag11>
<utag12>Test zu 12</utag12>
<utag13>Test zu 13</utag13>
</tag1>
<tag2>
<utag21>Test zu 21</utag21>
<utag22>Test zu 22</utag22>
<utag23>Test zu 23</utag23>
</tag2>
<tag3>
<utag31>Test zu 31</utag31>
<utag32>Test zu 32</utag32>
<utag33>Test zu 33</utag33>
</tag1>
was ist aber bei folgender Struktur:
<tag1>
Text vor den utags
<utag11>Test zu 11</utag11>
<utag12>Test zu 12</utag12>
<utag13>Test zu 13</utag13>
</tag1>
ich weiß nicht wie ich da rankomme. Mir fehlt dafür die Logik.
Vielleicht kann mir einer einen Tipp geben
Hi,
Ich habe eine Parser geschrieben
Wozu willst du sowas selber schreiben?
PHP hat mehrere Moeglichkeiten, XML zu parsen, bereits an Bord.
MfG ChrisB
Hallo,
Ich habe eine Parser geschrieben
Wozu willst du sowas selber schreiben?
weil selber schreiben oft schneller und weniger aufwendig ist, als sich in etwas einzuarbeiten, was jemand anders geschrieben hat (kommt drauf an, wie gut die Doku ist; meistens ist sie unzureichend).
Das ist zumindest meine Erfahrung und der Grund, warum ich selten Fremdbibliotheken verwende.
So long,
Martin
Lieber severus,
Ich habe eine Parser geschrieben
warum? Bist Du mit den bereits existierenden Parserfunktionen von PHP unzufrieden? Ist SimpleXML auch nicht nach Deinem Geschmack?
Liebe Grüße,
Felix Riesterer.
Ich habe ja den Parser von PHP verwendet!
Lieber severus,
Ich habe ja den Parser von PHP verwendet!
und wie sieht das Array aus, das er Dir zurückgibt?
Liebe Grüße,
Felix Riesterer.
Hi,
Ich habe ja den Parser von PHP verwendet!
Warum sagst du das nicht gleich, sondern behauptest, du haettest einen Parser "geschrieben"?
Und *welchen*, das wissen wir jetzt immer noch nicht.
Kannst du dich jetzt bitte langsam mal so umfangreich ausdruecken, dass dein Problem auch nachvollzogen werden kann?
</hilfe/charta.htm#tipps-fuer-fragende>
MfG ChrisB
Hi,
was ist aber bei folgender Struktur:
<tag1>
Text vor den utags
<utag11>Test zu 11</utag11>
<utag12>Test zu 12</utag12>
<utag13>Test zu 13</utag13>
</tag1>
>
> ich weiß nicht wie ich da rankomme. Mir fehlt dafür die Logik.
> Vielleicht kann mir einer einen Tipp geben
ich hatte ein ähnliches Problem was ich mit Regex lösen wollte:
<https://forum.selfhtml.org/?t=182792&m=1210087>
Da dies aber schwieriger scheint als ich dachte, bin ich nun folgendermassen vorgegangen:
mit regex wie im Link die äusseren Elemente in meinem Fall <tr> als array matchen, dann mit einer Schleife durchlaufen und jede wert wieder als array matchen, also <td>. Ich wollte zwar zunächst komplett dann auf regex verzichten, ging aber nicht eben aus dem gleichen Grund wie dein problem, Leerzeichen und Zeilenumbrüche. Aber durch die Pattern habe erst mal alles gematcht un dann nacher mit str\_replace gesäubert.
Funktioniertr alles tadellos, aber eine einzige Regex wäre mir natürlich lieber.
Mario