如何读取和解析.xml文件
我需要简单地读取.xml文件;像这样:如何读取和解析.xml文件
<exchanges>
<exchange>
<timestamp>2010-08-19 17:15:56</timestamp>
<userid>Elijah-Woods-MacBook-Pro.local</userid>
<clientname>elijah</clientname>
<botid>Jarvis</botid>
<input>firsthello</input>
<response>Hello, sir. How may I help you?</response>
</exchange>
</exchanges>
然后,解析'response'标签之间的内容。
利亚
基本思想,。基于GDataXML
的代码是不完整http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/
还看到多个解析器的这种分析
http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project
NSArray *entries = [doc nodesForXPath:@"//exchanges/exchange" error:nil];
for (GDataXMLElement *entry in entries) {
NSMutableDictionary * dict = [[[NSMutableDictionary alloc]initWithCapacity:7 ] autorelease];
[dict setValue:[[[entry elementsForName:@"timestamp"] objectAtIndex:0] stringValue] forKey:@"timestamp"];
[dict setValue:[[[entry elementsForName:@"userid"] objectAtIndex:0] stringValue] forKey:@"userid"];
[dict setValue:[[[entry elementsForName:@"clientname"] objectAtIndex:0] stringValue] forKey:@"clientname"];
[dict setValue:[[[entry elementsForName:@"botid"] objectAtIndex:0] stringValue] forKey:@"botid"];
[dict setValue:[[[entry elementsForName:@"input"] objectAtIndex:0] stringValue] forKey:@"input"];
[dict setValue:[[[entry elementsForName:@"response"] objectAtIndex:0] stringValue] forKey:@"response"];
}
您有在可可解析XML两种选择:
- Event-Driven,其中解析器发出到你的委托类响应事件。
- Tree-Based,其中解析器构建一个可以查询或修改的XML树。
事件驱动分析的内存密集程度较低,但由于不构建整个XML树,因此无法使用XPath或XQuery来获取有关文档的信息。基于树的通常使用更多的内存(因为整个XML文档被转换为对象形式并存储在内存中),但它提供了更强大的机制来从树中获取数据。
TouchXML也是iPhone上的一个非常好的XML库。它被证明是解析速度最快的之一。
还有更多的网上,如果你很好“touchxml iphone教程”虽然
我主要在Mac上使用它。任何类似的Mac的东西? – objectiveccoder001 2010-08-20 16:03:44
TouchXML只是Cocoa的NSXML *类的替代品(NSXML *在iPhone上不存在)。 – mipadi 2010-08-20 17:36:58
你能举一个快速的例子来解析这个,只是得到响应标签之间的内容吗?这就是我需要的。 – objectiveccoder001 2010-08-20 15:07:22
这个.XML文件位于我的桌面上。 – objectiveccoder001 2010-08-20 15:21:20