XML parsen <!ENTITY Einträge
Wumpso
- php
0 Wumpso
Hallo!
Ich versuche mittels xml_parse() eine SVG-Graphik zu parsen.
Der <!DOCTYPE>-Bereich sieht folgendermaßen aus:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
<!ENTITY st0 "stroke:none;fill:#ffffff">
<!ENTITY st1 "stroke:none;fill:#000000">
<!ENTITY st2 "stroke:none;fill:#990000">
]>
Jetzt möchte ich möglichst komfortabel auf die einzelnen <!ENTITY>-Elemente zugreifen.
Ich finde in der PHP-Doku nur xml_set_external_entity_ref_handler() und xml_set_external_entity_ref_handler() für die "externen/unparsed" entities, aber für die "internen/parsed" entities wie oben finde ich nichts.
Mit xml_set_default_handler() bekomme ich zwar die entities übergeben, aber nur als Text (zusammen mit allem anderen aus der XML-Datei, was mich gar nicht interessiert):
<?xml version="1.0" standalone="no"?>
<!-- Generator: Mayura Draw 4.2 -->
<!DOCTYPE
svg
PUBLIC
"-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"
[
<!ENTITY
st0
"stroke:none;fill:#ffffff"
(...)
Da könnte ich jetzt etwas umständlich "zu Fuß" selbst parsen, aber geht das vielleicht auchg irgendwie einfacher, so dass ich ein Array zurückbekomme z.B. $entity['st0']="stroke:none;fill:#ffffff" ?
Vielen Dank
Wumpso
Hat sich erledigt.
Nur falls es wen interessiert:
Diese entities heißen deshalb "parsed entities" weil sie vom Parser - nämlich xml_parse() - augewertet werden! Ich muss die also selbst gar nicht auswerten!
Aber danke, falls irgendwer sich Gedanken gemacht hat!
Wumpso