iosxmlxcodesoaptouchxml

iOS: TouchXML xmlReadMemory VS xmlParseMemory


I tried to use 2 different implementations of TouchXML, one provided with SudzC and the other from TouchXML github repo. There is a little difference between them, consisting in the initialization of the CXMLDocument:

GitHub:

CFStringEncoding cfenc = CFStringConvertNSStringEncodingToEncoding(encoding);
CFStringRef cfencstr = CFStringConvertEncodingToIANACharSetName(cfenc);
const char *enc = CFStringGetCStringPtr(cfencstr, 0);
theDoc = htmlReadMemory([inData bytes], [inData length], NULL, enc, HTML_PARSE_NONET | HTML_PARSE_NOBLANKS | HTML_PARSE_NOWARNING);

SudzC version

theDoc = xmlParseMemory([inData bytes], [inData length]);

The problem is in the output, cause when querying the rootElement of the GitHub version it returns "soap:Envelope" and SudzC version returns "Envelope".

Could you please explain me why do I get different versions of output and how could I obtain in the GitHub version the output without "soap:" prefix?

Thanks in advance. I hope I have given enough information.


Solution

  • I've faced the same issue and I've figured out that it's connected to difference in TouchXML versions. GitHub version contains prefixes parsing implementation, while SudzC version doesn't.