Hello,
i'm trying to parse a xml string with NSXMLParser which i created in PHP. My PHP sript is:
$doc = new DomDocument('1.0');
//$doc->preserveWhiteSpace=false;
$root = $doc->createElement("root");
$root = $doc->appendChild($root);
$child = $doc->createElement("child");
$child = $root->appendChild($child);
$value = $doc->createTextNode("testvar");
$value = $child->appendChild($value);
$xml_string = $doc->saveXML();
print $xml_string;
If i open the page in the browser it shows me 'testvar' like it should. Showing the source it shows me that there're several whitespaces:
begin ->| <?xml version="1.0"?>
<root><child>testvar</child></root>
|<--end
Setting preserveWhitespace to false doesn't change anything. So i tried with regex in php:
$xml_string1 = preg_replace("/\s+</","<",$xml_string);
$xml_string2 = preg_replace("/>\s+/",">",$xml_string1);
print $xml_string2;
This removes the \n and brings me to this
begin-->| <?xml version="1.0"?><root><child>testvar</child></root> |<--end
In the browser it always shows the wanted result: testvar
On the iphone i get following error:
**NSXMLParserErrorDomain Code = 64, Operation could not be completed.**
I don't know whats the problem with the xml, i receive it correctly like under This removes the \n ....
I tried to debug but after starting the parser with [parser parse] none of the delegate functions is called (yes, i set the delegate) exept the parserError. As there're still spaces before and after the xml may this is the reason, but i can't get them out. In my application on the iPhone i tried different encodings, UTF8 and ASCII. I also tried to convert the received data to a string, called
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet
and converted back.
I also set the following:
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
I don't know what i'm doing wrong, please help.
Thanks in advance.