【问题标题】:XML parsing iPhoneXML解析iPhone
【发布时间】:2009-12-10 15:46:59
【问题描述】:

我有这个字符串:

 <?xml version="1.0" encoding="UTF-8"?>
    SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:methods" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="urn:PingdomAPI" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:createAccountResponse><return xsi:type="ns2:CreateAccountResponse"><status xsi:type="xsd:int">3</status><password xsi:nil="true"/></return></ns1:createAccountResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

问题是:如何提取int值3,status的值。

【问题讨论】:

    标签: iphone xml parsing


    【解决方案1】:

    这些示例取自 Apple 的 event driven XML programming guide

    创建和初始化一个 NSXMLParser 实例:

    BOOL success;
    NSURL *xmlURL = [NSURL fileURLWithPath:pathToFile];
    if (addressParser) // addressParser is an NSXMLParser instance variable
        [addressParser release];
    addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];
    [addressParser setDelegate:self];
    [addressParser setShouldResolveExternalEntities:YES];
    success = [addressParser parse]; // return value not used
                // if not successful, delegate is informed of error
    

    实现您感兴趣的委托方法。

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

    有关委托方法的完整列表,请参阅NSXMLParser Class Reference

    【讨论】:

    • NSXML 仅在模拟器中可用,但由于性能问题,在设备本身上不可用
    • 你是对的,MLaden,但是 rjstelling 的示例使用了 NSXMLParser,它在设备上可用。
    • 如何解决我的问题。我建议我用字符串的内容而不是 URL 来初始化 addressParser。但是如何提取关键“状态”的 int 值?
    • Mladen 你需要实现 didStartElement: 和 parse:foundCharacters: 你真的需要阅读文档(和/或我的博客文章)。没有太多的。我们可以帮助您解决您可能遇到的具体问题。
    【解决方案2】:

    您需要使用NSXMLParser(或第三方解决方案)。 有关更多信息和有用的包装器,请参阅 this blog post of mine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-14
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多