如何解析 objective c 中的 xml 响应

how to parse xml response in objective c

我正在从服务器获得 xml 类型的响应,但我无法通过解析获取值 do no 我遗漏了什么

这是来自服务器的示例响应:

<admin>
<logindetails 
status="cdcdvfbgfhgfgfbff" 
timestamp="1494499694240" isdaylighton="true" 
isupdateavailable="false" updateurl="" user="1" 
userParentID="0">Success</logindetails><admin>

我的解析方法:

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"Element Name :%@",elementName);

recordResults =NO;

if ([elementName isEqualToString:@"logindetails"]) {

    data = [soapResultsString dataUsingEncoding:NSUTF8StringEncoding];
    json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    NSLog(@"json===>%@",array);
  }
}

 -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
 {

if( recordResults )
{
    [childElement appendString: string];
    NSLog(@"inside%@",string);

}

}

 -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName
  attributes: (NSDictionary *)attributeDict
{

xmlparserString=elementName;
NSLog(@"xmlparserString start -->%@",xmlparserString);

if( [xmlparserString isEqualToString:@"logindetails"])
{

    recordResults =YES;
    soapResultsString = [[NSMutableString alloc] init];

}

}

我正在获取所有标签名称,但我无法从 Xml 响应中获取值,请检查代码并回答

您要查找的数据是XML属性,在didStartElement中的attributes字典中返回。

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *) elementName 
                                       namespaceURI:(NSString *) namespaceURI 
                                      qualifiedName:(NSString *) qName
                                         attributes:(NSDictionary *) attributeDict
{

    xmlparserString = elementName;
    NSLog(@"xmlparserString start -->%@",xmlparserString);

    if ([xmlparserString isEqualToString:@"logindetails"]) {

        // soapResultsString = [[NSMutableString alloc] init];
        NSLog(@"logindetails attributes --> %@", attributeDict);

}

didEndElement 中的 JSON 反序列化是错误的,无法工作。 XML 属性不是 JSON。删除整个 if 表达式