【问题标题】:XML parsers used in iphone sdkiphone sdk 中使用的 XML 解析器
【发布时间】:2023-03-10 13:24:02
【问题描述】:

我对 iphone 开发很陌生。我正在阅读有关使用 NSXMLParser 的 XML 解析的教程。我们可以使用其他解析器来解析 XML。我们如何决定使用哪个解析器?

问候,
石头

【问题讨论】:

    标签: iphone objective-c xcode nsxmlparser


    【解决方案1】:

    标准解析器是 NSXMLParser 或基于 c 的 libxml。但是有很多 3rd 方解析器可用。查看此blog post,其中一些最流行的解析器进行了审查和比较。

    【讨论】:

      【解决方案2】:
      - (void)connectionDidFinishLoading:(NSURLConnection *)theConnection
      {
          [self parseXMLFile:xmlFile];
          unsigned char byteBuffer[[xmlFile length]];
          [xmlFile getBytes:byteBuffer];
          NSLog(@"Output: %s", (char *)byteBuffer);
          NSLog(@"Succeeded! Received %d bytes of data",[xmlFile length]);    
          [xmlFile release];
          xmlFile = [[NSMutableData data] retain];
      
      }
      
      
      - (void)parseXMLFile:(NSData *)adatok {
          if (adatok != nil) {
              BOOL success;
              if (addressParser) 
                  [addressParser release];
              addressParser = [[NSXMLParser alloc] initWithData:adatok];
              [addressParser setDelegate:self];
              [addressParser setShouldResolveExternalEntities:YES];
              success = [addressParser parse]; 
      
          }
      }
      
      - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {  here You enter the node }
      
      - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { here you get the content CDDATA}
      
      - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { here you end node }
      

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        这是来自 Apple 的示例代码。它显示了所有可用的 XML 解析器之间的区别..

        http://developer.apple.com/library/ios/#samplecode/XMLPerformance/Introduction/Intro.html

        对于新手来说真的很有帮助..随意使用..

        【讨论】:

          【解决方案4】:

          我找到了很多关于这个问题的教程和很多帖子。 很多教程都不行!!!! 我找到了这个 http://gigaom.com/apple/tutorial-build-a-simple-rss-reader-for-iphone/

          我不明白 NSXMLparser 是如何工作的

          【讨论】:

            【解决方案5】:

            就个人而言,如果您使用 XML 并且可以访问提要,我总是会将提要转换为 plist 格式。这是一种更适合 iPhone 使用的格式,可以为您节省大量时间和精力。

            还有https://github.com/robbiehanson/KissXML,它为您提供了与缺少的 NSXML 类类似的构成。它以某种方式完成,这意味着如果苹果确实将这些类放入 iOS sdk 中,它根本不会发生冲突。

            【讨论】:

            • 嗨@Thomas Clayson 给定url 不可用...
            【解决方案6】:

            如果您要使用 HTML,hpple 值得一试。它非常易于使用,并且很快将支持完整的 XML。

            【讨论】:

              【解决方案7】:

              检查这个链接解析xml解析

              NSString *url=@"http://www.lancers.jp/work/search/.rss";
              
              NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
              NSDictionary *dict=[XMLReader dictionaryForXMLData:data error:nil];
              

              Click on this link

              Demo code of XML

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-02-26
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多