Hello,

thanks for your fast replies but they didn't really help me to solve my 
problem. Can you give a short example how to parse my file without getting 
these "special character chrashes".
I'm not really fit with xerces and just starting with xml.

Best regards

Stefan

>  -----Ursprüngliche Nachricht-----
> Von:  Martinke, Stefan  
> Gesendet:     Freitag, 2. Dezember 2005 11:54
> An:   '[email protected]'
> Betreff:      Xerces Problem with parsing special characters
> 
> Hello,
> 
> I'm working on a project where we use an xml-Parser to get 
> information abnout specific devices. We are using the 
> Xerces-Parser for parsing our documents. The problem is that 
> if we have special character like the german 'ö' or ' ° ' for 
> °C in our xml document the transcode-function will not 
> transcode these strings to a char*.
> 
> Our XML-File looks like this:
> 
> <Device Name = "test"
>        ID = "1">
>       <Devicedetails Name= "Temperatur °C"
>                         Temp = "20"/>
> </Device>
> ...
> 
> Parsing of the file seems to work but if i try to get the 
> value of the attributes the parser crashes at the attribute 
> with the special character.
> I'm parsing the file like this:
> (After loading and parsing the file i'm taking the rootnode)
>  
> char* nodename = XMLString::transcode(rootnode->getNodeName);
> if(strcmp(nodename,"Device")==0)
> {
>   char* devicename;
>   DOMNamedNodeMap * map = rootnode->getAttributes();
>   XMLCh* temp1 = XMLString::transcode("Name");
>   DOMNode *tmp1 = map->getNamedItem(temp1);
>   if(tmp1 !=NULL)
>   {
>     devicename = XMLString::transcode(tmp1->getNodeValue);
>   }
>   XMLString::release(temp1);
> }
> XMLString::release(nodename);
> ...
> 
> I already tried to do several things to solve my problem. 
> I've set the codepage to the german one by using
> setlocale(LC_CTYPE, "de_DE.UTF-8");
> in my main but it didn't help.
> Does anybody know a solution os has a hiont for me?
> 
> Best regards
> 
> Stefan
> 

Reply via email to