【问题标题】:Is possible parsing xml file that contains only one node by using NSXMLParser是否可以使用 NSXMLParser 解析仅包含一个节点的 xml 文件
【发布时间】:2012-11-07 04:38:14
【问题描述】:

作为一个初学者,我已经阅读了NSXMLParser 并尝试实现一个解析器来解析 xml

<?xml version="1.0" encoding="UTF-8"?>
<a>Some text here</a>

我的实现

-(OneNodeXMLParser*)initOneNodeXMLParser{

appDelegate = (OneNodeXMLParser*)[[UIApplication sharedApplication]delegate];
return self;
}

-(void)parser:(NSXMLParser*) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
NSLog(@"%s",__PRETTY_FUNCTION__,nil);
if([elementName isEqualToString:@"a"]){
   // init some varibles
}
NSLog(@"Starting processing");
}

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog(@"%s",__PRETTY_FUNCTION__,nil);
NSLog(@"%s",string);
}

   -(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
NSLog(@"%s",__PRETTY_FUNCTION__,nil);
NSLog(@"Finishing processing");
}

我应该修改什么才能成功解析文件?

【问题讨论】:

  • 可以单节点解析xml。
  • 你能解释的更详细些吗,我应该在上面的代码中修改哪里,我想得到那个文本以供以后使用

标签: iphone objective-c xml xml-parsing


【解决方案1】:

在您的 .h 文件中声明 NSMutableString *store;

并更改以下方法,例如:

-(void)parser:(NSXMLParser*) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
  if([elementName isEqualToString:@"a"])
  {
     store = [[NSMutableString alloc] init];
  }
  NSLog(@"Starting processing");
}

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
  NSLog(@"%s",string);
   if (store != nil)
   {
     [store appendString:string];
   }
}

-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 {
   NSLog(@"Finishing processing String : %@", store);
 }

您可以使用该字符串变量store 以备将来使用。

【讨论】:

  • 是的,对我很有帮助,非常感谢
猜你喜欢
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多