如何解析 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
表达式
我正在从服务器获得 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
表达式