我正在尝试将iOS应用程序移植到Android。我是Android中解析XML的新手。你能帮我个忙吗?
这是我的XML文件的味道:
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<settingA>1</settingA>
<settingB>sunday</settingB>
<description>HAdijoijaofijfosdifjsoidfjodsfjidsfojds</description>
</item>
</items>
在iOS中,我遵循一些步骤,包括查找和读取元素,例如:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"terms"]) {
// Tag <terms> found, creating a list of oracoes
self.terms= [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"term"]) {
// Tag <term> found, creating a new Term object
term = [[Term alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"terms"])
{
return;
}
if([elementName isEqualToString:@"term"]) {
[self.oracoes addObject:term];
[term release];
term = nil;
} else {
if(tempString != nil && term != nil){
[oracao setValue:tempString forKey:elementName];
}
[tempString release];
tempString = nil;
}
}
// Read content
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
NSString *s = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if(!tempString)
{
tempString = [[NSMutableString alloc] init];
}
[tempString appendString:s];
}
也许所有这些代码都无关紧要......但无论如何......我应该从哪里开始?是否有任何直接的方法将此XML信息压缩到列表数组?
谢谢!
当人们以这种方式回答时,我讨厌....
我最近碰到了相同的情况,我需要创建我的iPhone应用程序的Android版本。我没有选择一种android zillion解析方法,而是采用了一种抽象方式。如果Apache许可证不是问题,我强烈推荐这个。
Simple XML会将xml映射到您的对象。
你可以使用xmlpullparser很容易做到。请参考下面的链接,它有一个示例代码http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html