Nur so als Hintergrund:
Wenn man HTML in XML einbettet hat man das Problem, dass die HTML Tags genauso gestaltet sind, wie die XML Tags. HTML ist ja eigentlich nichts anderes als XML. Das bringt natürlich jeden Parser durcheinander. Deswegen müssen solche Zeichen, die den Parser verwirren umgeschrieben werden. Das "<" leitet ein Tag ein. Das ">" beendet das Tag. Aber auch nur wenn eines offen ist.
Deswegen macht es Sinn das "<" durch "& lt;" zu ersetzen. Das ">" muss nicht zwingend ersetzt werden, da es ja nur ein Tag beendet wenn eines offen ist. Was bei der Verwendung von "& lt;" nicht mehr der Fall ist.
Ein ordentlicher XML Parser erkennt die Escape-Sequenz "& ;", und ersetzt beim Lesen die Sequenz mit dem jeweiligen Zeichen. Damit ist der Inhalt wieder hergestellt, ohne das XML Schema zu verletzen. (Übrigens, selbiges passiert hier im Forum, wenn man "& lt;" richtig schreibt und das Leerzeichen weg lässt)
In QMapShack erledigt das Qt mit seiner XML Erweiterung automatisch beim Schreiben und Lesen. Der Code von QMapShack hat darauf keinen Einfluss. Und soll es auch gar nicht haben. Wenn das also als Fehler empfunden wird müsst ihr das mit den Qt Entwicklern diskutieren. Ich befürchte nur, das die aus den oben genannten Gründen keinen Fehler erkennen können. Ich würde eher sagen, dass der Parser in Osmand nicht richtig funktioniert. Weil er eigentlich das "& lt;" beim Einlesen des Textfeldes ersetzen müsste.