我是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
或任何其他NSXMLParser
从xml parser
数据中获取这些信息?
提前致谢。
答案 0 :(得分:0)
如果您希望在不使用NSXMLParser的情况下改进解析(因为它是一个SAX解析器,它有点令人困惑),请使用DOM解析器,如KissXML,TouchXML。还要了解如何使用Xpath,它是可用于获取xml对象的字符串。比如,如果给出像“// doc”这样的命令,你将得到所有的xml标签。
答案 1 :(得分:0)
NSXMLParser
可以很好地解析XML文件,而且你真的不需要任何其他第三方来做这件事。 NSXMLParser Class Reference非常好,非常清楚,详细解释了你需要的一切。 SeismicXML也是一个很好的示例代码,可用于研究和理解它。
This也很有帮助。
但是,简而言之,要解析一个位于Internet上某处的XML文件,您需要两件事:
NSURLConnection
您可以使用它来连接XML文件的URL,下载数据并保存。
NSXMLParser
下载XML数据后,使用NSXMLParser
解析数据并将解析后的内容存储在数组或任何您需要的内容中。
因此,您需要在<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。