2014-08-27 68 views
-2

我是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數據的那些信息?

在此先感謝。

回答

0

如果您想在不使用NSXMLParser的情況下改進解析(因爲它是SAX解析器,有點令人困惑),請使用DOM解析器,如KissXML,TouchXML。還要了解如何使用Xpaths,這是可用於獲取xml對象的字符串。就像,你要是給一個像「// doc」這樣的命令,你會得到所有的xml標籤。

0

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瞭解更多信息。