【问题标题】:How to prevent appending \n to NSmutable string while parsing xml?解析xml时如何防止将\n附加到NSmutable字符串?
【发布时间】:2013-10-31 11:47:37
【问题描述】:

这个问题是this question的扩展。

现在我使用下面的代码来解析 xml 数据,

    -(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    rValue = [[NSMutableString alloc]init];
    isTag = FALSE;
    if ([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame)
        isTag=YES;

}


-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)strin{
if (isTag) 
        [rValue appendString:strin];
}

-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{

    if([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame)
        [myarray addObject:rValue];
}

-(void) parserDidEndDocument:(NSXMLParser *)parser
{
    NSLog(@"%@",myarray);
}

rValue 是一个 NSMutablestring;

打印完我的数组后是这样的,

(
"Book Store\n    ",
"Birch river grill\n    ",
"PIC\n    ",
"Drink Juice\n    ",
"Cofee Cafee\n    ",
"Diag Block\n    ",
"Delici Store\n    ",
"Rubbit Rabbit\n\n\n    ",
"Spoon Fork\n    ",
"Travel Sea\n\n    ",
"Water Melocious\n\n\n    ",
"Lazee Fish\n\n\n\n    ",
"Allow\n    ",
"Enjoy Traveling\n    ",
"Grwing Three\n    ",
"Diz Cow\n\n    ",
"Wheeler Marine\n\n\n    "
)

如何防止将\ns 添加到 NSMutable 字符串? 即,我需要检查字符串是否有\n

有时这些 \n 出现在 NSMutableString 的前缀,任何建议都将不胜感激。

【问题讨论】:

    标签: ios objective-c xml parsing nsmutablestring


    【解决方案1】:

    尝试改变这个方法:

     -(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
    
     if([elementName caseInsensitiveCompare:@"BusinessName"] == NSOrderedSame)
      [myarray addObject:[rValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
    

    【讨论】:

      【解决方案2】:

      修改了你的条件:-

      -(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)strin{
       if (isTag) 
      {
        NSString *newStr=[strin stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
           [rValue appendString:newStr];
      }
          }
      

      【讨论】:

        猜你喜欢
        • 2016-01-06
        • 1970-01-01
        • 2015-08-05
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 2020-02-04
        相关资源
        最近更新 更多