用于iPhone的IOS XML解析器

问题描述:

我是XML解析的新手。我总共cofused 有多少方法,我们应该需要XML解析和什么使用该方法用于iPhone的IOS XML解析器

<response> 
    <lst name="responseHeader"> 
     <int name="status">0</int> 
     <int name="QTime">0</int> 
     <lst name="params"> 
      <str name="q">title:ios</str> 
     </lst> 
    </lst> 
    <result name="response" numFound="3" start="0"> 
     <doc> 
      <str name="author">Boney, James</str> 
      <str name="author-letter">Boney, James</str> 
      <arr name="collection"> 
       <str>Catalog</str> 
      </arr> 
      <arr name="ctrlnum"> 
       <str>(DE-599)BSZ096485965</str> 
      </arr> 
      <arr name="dewey-full"> 
       <str>004.62</str> 
       <str>004.6/2</str> 
      </arr> 
      <arr name="dewey-hundreds"> 
       <str> 
000 - Informatik, Informationswissenschaft, allgemeine Werke 
       </str> 
      </arr> 

现在请大家有没有人帮忙找出来,我怎样才能使用NSXMLParser或IOS任何其他​​的xml数据的那些信息?

在此先感谢。

如果您想在不使用NSXMLParser的情况下改进解析(因为它是SAX解析器,有点令人困惑),请使用DOM解析器,如KissXML,TouchXML。还要了解如何使用Xpaths,这是可用于获取xml对象的字符串。就像,你要是给一个像“// doc”这样的命令,你会得到所有的xml标签。

NSXMLParser只是很好的解析XML文件,你并不真的需要任何其他第三方的东西来做到这一点。 NSXMLParser Class Reference真的很好,很清楚,详细解释你需要的一切。 SeismicXML也是一个很好的示例代码,您可以使用它来学习和理解它。

This也很有帮助。

但是,把它概括地说,能够解析某处驻留在Internet上的XML文件,需要两两件事:

  1. NSURLConnection

    您可以使用此连接到XML文件的URL,下载数据并保存。

  2. NSXMLParser

    一旦XML数据下载,使用NSXMLParser解析数据和分析的东西存放在数组或任何你需要的。

因此,您需要在您的.h文件中添加<NSURLConnectionDelegate><NSXMLParserDelegate>

NSXMLParserDelegate协议定义了由代表NSXMLParser对象实现的可选方法。

这些都是委托方法来处理XML:

– parserDidStartDocument: 
– parserDidEndDocument: 
– parser:didStartElement:namespaceURI:qualifiedName:attributes: 
– parser:didEndElement:namespaceURI:qualifiedName: 
– parser:didStartMappingPrefix:toURI: 
– parser:didEndMappingPrefix: 
– parser:resolveExternalEntityName:systemID: 
– parser:parseErrorOccurred: 
– parser:validationErrorOccurred: 
– parser:foundCharacters: 
– parser:foundIgnorableWhitespace: 
– parser:foundProcessingInstructionWithTarget:data: 
– parser:foundComment: 
– parser:foundCDATA: 

取决于你在做什么,你会选择和使用只是其中的几个,除了– parserDidStartDocument:– parserDidEndDocument:需要使用。还应该包括– parser:parseErrorOccurred:

查看NSXMLParserDelegate Protocol Reference了解更多信息。