Forum: PC-Programmierung Include-Entities in XML ersetzen


von Verzweifelt (Gast)


Lesenswert?

Hallo Freunde,

seit ein paar Tagen versuche ich Mapnik (Kartenrenderer) zum laufen zu 
bekommen. Fürs Rendern braucht Mapnik eine Style-Datei, meist osm.xml 
genannt. Gut, eine Kopie einer älteren Datei und ihrer Anhängsel von OSM 
genutzt → geht nicht :(

Warum? Weil Mapnik mit den Entities in der Datei seit einigen Versionen 
nicht mehr umgehen kann. Bei OSM machen die das jetzt irgendwie anders, 
aber das ist dermaßen schlecht oder gar nicht dokumentiert, da verliert 
man irgendwann den Überblick. Bei Mapnik das gleiche für die aktuelle 
3er-Version (wenigstens mit Hinweis...).

Das sieht so aus (und geht in der entities-Datei selbst nochmal ein paar 
Dateien weiter):
1
<!ENTITY % entities SYSTEM "inc/entities.xml.inc">
2
%entities;
3
]>

Weiter dann immer das im Code, wo der XML-Code aus den inkludierten 
Dateien hin soll:
1
&fontset-settings;

Gibt es ein Programm oder sonst was, was diese Ersetzungen einmal 
vornimmt und daraus eine neue Datei macht? PS: Linux

von Dein Lehrer liest hier mit (Gast)


Lesenswert?

Irgendwas in XML zu manipulieren gibts zig tools:

BeautifulSoup (python)
lxml (python)
xmlstar(let)
html+xmltools vom w3c (sind im ubunturepo dabei, Aufruf mit hx...)
und vermutlich noch ne Tonne andere

von Verzweifelt (Gast)


Lesenswert?

Ich habe nun währenddessen xmllint gefunden. Das löst es perfekt und 
rendern geht nun :D
1
xmllint --loaddtd --noent --dropdtd osm.xml -o osm-neu.xml

Was für ein Leidensweg das war...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.