适用于iPhone的IOS XML Parser

时间:2014-08-27 08:32:58

标签: ios objective-c xml xcode xml-parsing

我是XML解析的新手。我完全被cofused 我们需要多少方法才能进行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>

现在请有人帮忙了解一下,如何在IOS中使用xml或任何其他NSXMLParserxml parser数据中获取这些信息?

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

NSXMLParser可以很好地解析XML文件,而且你真的不需要任何其他第三方来做这件事。 NSXMLParser Class Reference非常好,非常清楚,详细解释了你需要的一切。 SeismicXML也是一个很好的示例代码,可用于研究和理解它。

This也很有帮助。

但是,简而言之,要解析一个位于Internet上某处的XML文件,您需要两件事:

  1. NSURLConnection

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

  2. NSXMLParser

    下载XML数据后,使用NSXMLParser解析数据并将解析后的内容存储在数组或任何您需要的内容中。

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

    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