Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 无法分析以下XML?_Iphone_Objective C_Ios_Xml Parsing_Nsxmlparser - Fatal编程技术网

Iphone 无法分析以下XML?

Iphone 无法分析以下XML?,iphone,objective-c,ios,xml-parsing,nsxmlparser,Iphone,Objective C,Ios,Xml Parsing,Nsxmlparser,我有连续的img id=“#”,其中#从1到9不等 标记的描述由浮动值组成 当我使用标准的NSXML解析器时,我没有得到所有的值 我的XML供参考: <img id="1">-0.0111328,-0.0635608,0.152549,0.11211,-0.0250431, -0.0370875,0.0862391,0.0970791,-0.0195908, -0.00892297,0.0791795,0.0554013,0.003

我有连续的
img id=“#”
,其中
#
从1到9不等

标记的描述由浮动值组成

当我使用标准的NSXML解析器时,我没有得到所有的值

我的XML供参考:

<img id="1">-0.0111328,-0.0635608,0.152549,0.11211,-0.0250431,

            -0.0370875,0.0862391,0.0970791,-0.0195908,

            -0.00892297,0.0791795,0.0554013,0.00362028,0.0138572,0.0432729,

             0.0253036,-0.0770325,0.14065,0.118424,0.1787,

             0.0734354,0.160883,0.101831,0.237038,0.0681151,0.178331,

             0.106532,0.224731,0.133766,0.222096,0.165214,0.240752,

             -0.0280366,0.106239,0.052094,0.110642,   

</img>
-0.0111328,-0.0635608,0.152549,0.11211,-0.0250431,
-0.0370875,0.0862391,0.0970791,-0.0195908,
-0.00892297,0.0791795,0.0554013,0.00362028,0.0138572,0.0432729,
0.0253036,-0.0770325,0.14065,0.118424,0.1787,
0.0734354,0.160883,0.101831,0.237038,0.0681151,0.178331,
0.106532,0.224731,0.133766,0.222096,0.165214,0.240752,
-0.0280366,0.106239,0.052094,0.110642,   
如何解析上述XML

请帮帮我


Thanx

这是因为
解析器:foundCharacters:
不会一次传递所有字符。您需要将为
标记获得的
解析器:didStartElement:namespaceURI:qualifiedName:attributes:
解析器:didEndElement:namespaceURI:qualifiedName:
回调之间的所有字符串连接起来

在下面的代码中,
buf
是解析器委托的
NSMutableString
ivar

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
    if ([qualifiedName isEqualToString:@"img"]) {
        buf = [NSMutableString string];
    }
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
    if ([qualifiedName isEqualToString:@"img"]) {
        buf = [buf stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
        NSLog(@"Got %@", buf);
    }
}

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    [buf appendString:string];
}

终于明白了。。。我为img id='#'放置了开始和结束标记。我的结构现在如下所示:

<images>

    <img id = '1'> -0.0111328,-0.0635608,0.152549,0.11211,-0.0250431,

        -0.0370875,0.0862391,0.0970791,-0.0195908,

        -0.00892297,0.0791795,0.0554013,0.00362028,0.0138572,0.0432729,

         0.0253036,-0.0770325,0.14065,0.118424,0.1787,

         0.0734354,0.160883,0.101831,0.237038,0.0681151,0.178331,

         0.106532,0.224731,0.133766,0.222096,0.165214,0.240752,

         -0.0280366,0.106239,0.052094,0.110642, ....  

     </img>

     <img id = '2'> ... 

     </img>

   ....

   ....

</images>

<mapping>

  <map>
    <imgid> 1 </imgid>
    <keyword> heavy </keyword>

  </map>

  <map>
    <imgid> 2 </imgid>
    <keyword> metal </keyword>

  </map>

  ...

  ...

</mapping>

-0.0111328,-0.0635608,0.152549,0.11211,-0.0250431,
-0.0370875,0.0862391,0.0970791,-0.0195908,
-0.00892297,0.0791795,0.0554013,0.00362028,0.0138572,0.0432729,
0.0253036,-0.0770325,0.14065,0.118424,0.1787,
0.0734354,0.160883,0.101831,0.237038,0.0681151,0.178331,
0.106532,0.224731,0.133766,0.222096,0.165214,0.240752,
-0.0280366,0.106239,0.052094,0.110642, ....  
... 
....
....
1.
沉重的
2.
金属
...
...
放置开始和结束标记使我能够解析整个xml

之前,开始和结束标记是针对单个图像的,这只导致对一个img进行解析

这使我在解析XML时添加了另一个关键点


希望这对其他人也有帮助。

您的代码在哪里?向我们展示您尝试过的内容。另外,请展示您能够从代码中获得的值。@MattBall在尝试以下答案后,我一定会发布我的全部答案,或者是为了得到解决方案,或者是作为其他人的参考。@MattBall将在下一次发布任何建议时记下这些建议question@ShivanRaptor下次发布任何问题时,将记录建议