【问题标题】:Reading id and value for a Node in NSXMLParser在 NSXMLParser 中读取节点的 id 和 value
【发布时间】:2010-08-22 08:33:45
【问题描述】:

我有一个这样的 XML 节点:

<State id="1"> AA </State>

如何读取值 'AA' ?我可以使用以下方法读取id 值“1”:

(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict { <br>

        //Extract the attribute here.
        aState.stateId = [[attributeDict objectForKey:@"id"] integerValue];
        NSLog(@"Reading id value :%i", aState.stateId);
    }
    NSLog(@"Processing Element: %@", elementName);
}

但无法读取值

【问题讨论】:

    标签: iphone xml iphone-sdk-3.0


    【解决方案1】:

    据我所知,要做到这一点,你应该实现这个方法

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

    整个代码如下所示:

        - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
    
        foundState = [elementName isEqualToString:@"State"];
    
        }
     - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
          if (foundState) {
            [stringBuffer appendString:string];
          }
       }
    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
    
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
        if (foundState) {
          NSLog(@"AA = %@", stringBuffer);
          foundState = NO;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2018-04-16
      • 1970-01-01
      相关资源
      最近更新 更多