【问题标题】:IOS XML Parser for IPhoneiPhone 的 IOS XML 解析器
【发布时间】:2014-10-20 18:14:22
【问题描述】:

我是 XML 解析的新手。我很困惑我们应该需要多少方法来解析 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 中使用 NSXMLParser 或任何其他 xml parserxml 数据中获取这些信息?

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      NSXMLParser 可以很好地解析 XML 文件,并且您实际上不需要任何其他第三方的东西来执行此操作。 NSXMLParser Class Reference 真的很好很清晰,详细解释了你需要的一切。 SeismicXML 也是一个很好的示例代码,你可以用来学习和理解它。

      This也很有帮助。

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

      1. NSURLConnection

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

      2. NSXMLParser

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

      因此,您需要在您的.h 文件中添加&lt;NSURLConnectionDelegate&gt;&lt;NSXMLParserDelegate&gt;

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-10
        相关资源
        最近更新 更多