将代码从iOS Xcode移植到Android(解析XML SAX)
我正在尝试将一个应用程序从iOS移植到Android。我不熟悉在Android中解析XML。你能帮我一下吗 以下是我的XML文件:将代码从iOS Xcode移植到Android(解析XML SAX),android,ios,xml,parsing,sax,Android,Ios,Xml,Parsing,Sax,我正在尝试将一个应用程序从iOS移植到Android。我不熟悉在Android中解析XML。你能帮我一下吗 以下是我的XML文件: <?xml version="1.0" encoding="UTF-8"?> <items> <item> <settingA>1</settingA> <settingB>sunday</settingB> <description>HAd
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<settingA>1</settingA>
<settingB>sunday</settingB>
<description>HAdijoijaofijfosdifjsoidfjodsfjidsfojds</description>
</item>
</items>
1.
星期日
HAdijoijaofijfosdifjsoidfjodsfjidsfojds
在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];
}
-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName
namespaceURI:(NSString*)namespaceURI限定名称:(NSString*)限定名称
属性:(NSDictionary*)属性指令{
if([elementName IsequalString:@“terms”]){
//找到标记,创建OracoE列表
self.terms=[[NSMutableArray alloc]init];
}
else if([elementName IsequalString:@“term”]){
//找到标记,创建新的术语对象
term=[[term alloc]init];
}
}
-(void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName
namespaceURI:(NSString*)namespaceURI限定名称:(NSString*)qName{
if([elementName IsequalString:@“terms”])
{
返回;
}
if([elementName IsequalString:@“term”]){
[self.oracoes addObject:term];
[期限释放];
术语=零;
}否则{
if(tempString!=nil&&term!=nil){
[oracao setValue:tempString-forKey:elementName];
}
[临时字符串释放];
tempString=nil;
}
}
//阅读内容
-(void)解析器:(NSXMLParser*)解析器查找字符:(NSString*)字符串{
NSString*s=[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
如果(!tempString)
{
tempString=[[NSMutableString alloc]init];
}
[tempString-appendString:s];
}
也许所有这些代码都无关紧要。。。但无论如何。。。我应该从哪里开始?
是否有任何简单的方法可以将此XML信息传递到列表、数组中
谢谢 我讨厌人们这样回答,但是 我最近遇到了同样的情况,我需要为我的iphone应用程序创建一个android版本。我没有选择安卓zillion解析方法中的一种,而是使用了一个稍微抽象一点的框架。如果Apache许可证不是问题,我强烈建议这样做
将xml映射到您的对象。您可以使用xmlpullparser,这很容易做到。参考下面的链接,它有一个示例代码
+1表示简单XML。在它的简单性和力量上是杰出的。谢谢汤姆!我会在这里发布我所做的!