Arbeiten mit Xerces C



  • Hallo zusammen,

    bisher habe ich TinyXML verwendet und fand das auch alles recht simpel.
    Jetzt möchte ich allerdings wegen der Validation gegen eine Schema XML
    auf Xerces C umsteigen.
    Was ich allerdings nicht so prickelnd finde ist der eigene Typ
    XMLCh*. Wie macht ihr das? Castet ihr zwischen dem Typen und char* hin und her
    oder verwendet ihr XMLString::transcode.

    Ich habe mir jetzt HelferMethoden geschrieben.
    Sieht zwar etwas umstndlich aus, aber scheint mir der beste Weg.

    z.B.:

    std::auto_ptr<std::string> XercesUtil::getAttribute(xercesc::DOMNode *node, const std::string& name){
    	xercesc::DOMNamedNodeMap *map = node->getAttributes();
    	if(map == 0)
    		return std::auto_ptr<std::string>();
    	XMLCh * xname = xercesc::XMLString::transcode(name.c_str());
    	xercesc::DOMNode *nd = map->getNamedItem(xname);
    	xercesc::XMLString::release(&xname);
    	const XMLCh *xvalue = nd->getNodeValue();
    	char *cvalue = xercesc::XMLString::transcode(xvalue);
    	std::string *value = new std::string(cvalue);
    	xercesc::XMLString::release(&cvalue);
    	return std::auto_ptr<std::string>(value);
    }
    

    EDIT:
    Außerdem gilt für XMLString: Users of this class must understand that this is not an officially supported class.

    Gruß,
    *Cpp-Anfänger*



  • 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.


Anmelden zum Antworten