Parantatatam
mag Cookies & Kekse
Hallo,
ich hoffe der Titel ist eindeutig genug gewählt. Jedenfalls sitze ich seit einiger Zeit daran mir eine eigene XML-Klasse zu basteln und da ich nicht nur Tags und CDATA-Elemente haben will fällt die Idee mit dem PHP-eigenen XML Parser auch raus. Ich will CDATA-Elemente gesondert sowie auch noch DTD und Kommentare analysieren. Meine Frage wäre nun: habt ihr Ideen oder Ratschläge wie ich mir am besten selbst einen eigenen Parser basteln könnte? Ich würde die Grundstruktur des XML Parsers übernehmen und dem entsprechend was analysiert wurde in verschiedene Typen (open, close, empty, comment, dtd, cdata, xml-declaration) unterteilen und dann eben noch Eigenschaften, Inhalt und Level. Versucht habe ich es schon damit, dass ich erstmal alles in einen gigantischen Array umwandle indem ich es einfach anhand der Kleiner-Als- und Größer-Als-Zeichen aufteile, was aber nicht die ideale Lösung ist. Also falls jemand von euch eine Idee hat, ich bin für jede anregende Idee dankbar.
Beispiel XML-Datei:
Ergibt folgenden Array:
ich hoffe der Titel ist eindeutig genug gewählt. Jedenfalls sitze ich seit einiger Zeit daran mir eine eigene XML-Klasse zu basteln und da ich nicht nur Tags und CDATA-Elemente haben will fällt die Idee mit dem PHP-eigenen XML Parser auch raus. Ich will CDATA-Elemente gesondert sowie auch noch DTD und Kommentare analysieren. Meine Frage wäre nun: habt ihr Ideen oder Ratschläge wie ich mir am besten selbst einen eigenen Parser basteln könnte? Ich würde die Grundstruktur des XML Parsers übernehmen und dem entsprechend was analysiert wurde in verschiedene Typen (open, close, empty, comment, dtd, cdata, xml-declaration) unterteilen und dann eben noch Eigenschaften, Inhalt und Level. Versucht habe ich es schon damit, dass ich erstmal alles in einen gigantischen Array umwandle indem ich es einfach anhand der Kleiner-Als- und Größer-Als-Zeichen aufteile, was aber nicht die ideale Lösung ist. Also falls jemand von euch eine Idee hat, ich bin für jede anregende Idee dankbar.
Beispiel XML-Datei:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<data>
<tag1></tag1>
<tag2 attr="attr2">
<tag3 attr="attr1" />
</tag2>
<tag4>Inhalt</tag4>
<!-- Kommentar -->
<![CDATA[cdata]]>
</data>
Ergibt folgenden Array:
Code:
Array
(
[0] => Array
(
[tag] => xml
[type] => xml-declaration
[attributes] => Array
(
[version] => 1.0
[encoding] => ISO-8859-1
)
[level] => 1
)
[1] => Array
(
[tag] => data
[type] => open
[level] => 1
)
[2] => Array
(
[tag] => tag1
[type] => open
[level] => 2
)
[3] => Array
(
[tag] => tag2
[type] => open
[attributes] => Array
(
[attr] => attr2
)
[level] => 2
)
[4] => Array
(
[tag] => tag3
[type] => empty
[attributes] => Array
(
[attr] => attr1
)
[level] => 3
)
[5] => Array
(
[tag] => tag2
[type] => close
[level] => 2
)
[6] => Array
(
[tag] => tag4
[type] => open
[value] => Inhalt
[level] => 2
)
[7] => Array
(
[tag] => tag4
[type] => close
[level] => 2
)
[8] => Array
(
[type] => comment
[value] => Kommentar
[level] => 2
)
[9] => Array
(
[type] => cdata
[value] => cdata
)
[10] => Array
(
[tag] => data
[type] => close
)
)
Zuletzt bearbeitet: