Parsen eines XML Documents mit Xerces
-
Hallo,
ich muss unter Linux C++ eine XML Datei ausparsen. Zur Realisierung verwende ich Xerces und soweit funktioniert das auslesen meiner XML Datei auch. Es gibt bei der ganzen Sache nur ein Problem, wo ich nicht weiter komme.
Ich lese meinen TextContent momentan wie folgt aus:
XMLString::transcode( firstElement->getTextContent() )Sobald allerdings in meinem Text Content ein '&' vorkommt, bricht der Parser einfach ab und gibt nur nach die Zeichen bis zum & aus.
Bsp:
<DocumentSerialNumber>000&0036485</DocumentSerialNumber>Ausgabe:
000...
ich vermute mal, das wird ein allgemeines Problem sein, nur habe ich bisher keine Lösung finden können. Wär schön wenn mir da jemand weiter helfen könnte. Danke
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Das & kann man nicht einfach so verwenden, es verhält sich ähnlich wie das \ in einem c string. Der HTML Quelltext deines Beitrages gibt dir die Antwoert, wie man das & escaped. Einfach Quelltext nach "Sobald allerdings in meinem Text Content ein" suchen.
-
wurde gerade diskutiert http://www.c-plusplus.net/forum/viewtopic-var-t-is-193949.html
Folgende Zeichen müssen durch Entities ersetzt werden
& -> &
< -> <-> >
" -> "
' -> '
-
wenn ich unter windows
XERCES_CPP_NAMESPACE::DOMDocument *m_MainDocument;
DOMBuilder *parser = ((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
m_MainDocument = parser->parseURI(_T("Bla.xml"));mach, kann ich auch & usw einlesen
-
vielen Dank für die Antworten! Hat mir sehr geholfen.