xml tags finden
Annika
- php
hey,
ich habe mehr als 2000 xml dateien.
ich möchte alle verwendeten tags wissen.
die dateien sehen so aus:
<xmlitem>
<item1>daten</item1>
<itemxy>daten 122</itemxy>
<itembla>blablabla</itembla>
[...]
</xmlitem>
ich hab es so versucht aber da kommt nur quatsch bei raus:
preg_match_all("/<(.+)>(.+)</(.+)>/", $data, $matches);
preg_match_all("/<(.+)>/", $data, $matches);
ich möchte einfach nen array mit (item1, itemxy, itembla)
mag mir wer ein wenig helfen?
liebe grüße, Annika
Moin!
ich hab es so versucht aber da kommt nur quatsch bei raus:
preg_match_all("/<(.+)>(.+)</(.+)>/", $data, $matches);
preg_match_all("/<(.+)>/", $data, $matches);
Nun kenne ich kein PHP (naja... Nicht gut) Aber Du verwendest ja reguläre Ausdrücke. Allerdings sind die nicht korrekt. Probier mal:
/</?([^>]+?)/?>/
Das sollte auf </xxx>, <xxx> und <xxx/> matchen (aber auch auf </xxx/>, aber sei's drum).
Dein (.+) ist zu gefräßig. Es findet nämlich auch <xxx><xxx> als ein Tag. Eventuell hilft <(.+?)>. Besser ist es aber, > explizit auszuklammern mit [^>].
-- Skeeve
Hallo Annika.
die dateien sehen so aus:
<xmlitem>
<item1>daten</item1>
<itemxy>daten 122</itemxy>
<itembla>blablabla</itembla>
[...]
</xmlitem>ich hab es so versucht aber da kommt nur quatsch bei raus:
preg_match_all("/<(.+)>(.+)</(.+)>/", $data, $matches);
preg_match_all("/<(.+)>/", $data, $matches);ich möchte einfach nen array mit (item1, itemxy, itembla)
Schon einmal darüber nachgedacht, es richtig™ zu machen?
Bewerkstelligen könntest du dies recht einfach per simplexml, oder alternativ auch per DOM (XML).
Einen schönen Dienstag noch.
Gruß, Mathias