解析用PHP创建的iPhone上的XML

解析用PHP创建的iPhone上的XML,php,iphone,objective-c,xml,parsing,Php,Iphone,Objective C,Xml,Parsing,我试图用我在PHP中创建的NSXMLParser解析xml字符串。 我的PHP sript是: $doc = new DomDocument('1.0'); //$doc->preserveWhiteSpace=false; $root = $doc->createElement("root"); $root = $doc->appendChild($root); $child = $doc->createElement("child"); $child = $root-

我试图用我在PHP中创建的NSXMLParser解析xml字符串。 我的PHP sript是:

$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;
如果我在浏览器中打开页面,它会像应该的那样显示“testvar”。 显示源代码它向我显示有几个空白:

begin ->| <?xml version="1.0"?>
<root><child>testvar</child></root>
    |<--end
我不知道xml有什么问题,我正确地接收到它,如下所示删除\n

我尝试过调试,但是在用[parser parse]启动解析器之后,没有调用任何委托函数(是的,我设置了委托)来除去parserError。 由于xml前后仍然有空格,这就是原因,但我无法将它们去掉。 在iPhone上的应用程序中,我尝试了不同的编码,UTF8和ASCII。 我还尝试将接收到的数据转换为字符串,称为

stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet
然后又改回来了

我还设置了以下内容:

[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
我不知道我做错了什么,请帮忙


提前感谢。

在通往NSXMLParser的途中,似乎有一些前导空格。在您粘贴的代码中,我看不到任何可以做到这一点的内容,但是:


  • 这是一个直接输出XML的PHP脚本吗?如果是这样,您需要确保在打开文件之前文件开头没有空格
    谢谢您的回答,帮助我继续搜索正确的内容。我真的不想删除我的XML声明,因为我必须遵守标准。我在浪费了1.5天之后找到了答案。PHP也使用类似的表示法:
    。请注意,所有php代码文件模块、包含等中都应省略最后一个php
    ?>
    。结束分隔符在php中是可选的(但在XML中不是),删除它有助于防止文件末尾出现不必要的空白,从而导致问题。我没有意识到这一点,在删除结束分隔符后,它工作得很好。

    你用PHP创建了iPhone?太棒了!
    **NSXMLParserErrorDomain Code = 64, Operation could not be completed.**
    
    stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet
    
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];
    
    $xml_string = $doc->saveXML($doc->documentElement);