Английский перевод не по ОП.Далее следует оригинал.
Джентльмен,
Я подключаюсь к веб-серверу и получаю файл XML следующего формата:
<?xml version="1.0" encoding="ISO-8859-1"?>
<programacao>
<agenda>
<data>17/02</data>
<cidade>Barueri</cidade>
<estado>SP</estado>
</agenda>
<agenda>
<data>19/02</data>
<cidade>Maringá</cidade>
<estado>PR</estado>
</agenda>
<agenda>
<data>17/03</data>
<cidade>Cubatão</cidade>
<estado>SP</estado>
</agenda>
</programacao>
Поканастолько хорошо.Но когда я пытаюсь разобрать это так:
-(id)loadXMLByURL:(NSString *)urlString
{
minhaAgenda = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
[parser parse];
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSMutableString
*)elementName
namespaceURI:(NSMutableString *)namespaceURI qualifiedName:
(NSMutableString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"agenda"])
{
currentEvento = [Agenda alloc];
currentNodeContent = [[NSMutableArray alloc] init];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSMutableString
*)elementName namespaceURI:(NSMutableString *)namespaceURI
qualifiedName:(NSMutableString *)qName
{
if ([elementName isEqualToString:@"agenda"])
{
[minhaAgenda addObject:currentEvento];
[currentEvento release];
currentEvento = nil;
[currentNodeContent release];
currentNodeContent = nil;
}
if ([elementName isEqualToString:@"cidade"])
{
currentEvento.cidade = currentNodeContent;
}
if ([elementName isEqualToString:@"estado"])
{
currentEvento.estado = currentNodeContent;
}
if ([elementName isEqualToString:@"data"])
{
currentEvento.data = currentNodeContent;
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString*)string
{
currentNodeContent = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", currentNodeContent);
}
... слова с ударениями усекаются.Я получаю несколько разрывов строк в журнале ... как слово Cubatão
показывает как Cubat
в одной строке и ão
в следующей, или Maringá
становится Maring
в одной и á
в следующей.
Я пробовал много разных вещей, но когда я помещаю их в табличное представление, все, что я получаю, это нарезанные кусочки.Что я могу сделать, чтобы решить эту проблему?
Оригинал
Senhores,
Estou realizando um conexão em um seridor web, acessando umarquivo XML no seguinte formato:
<?xml version="1.0" encoding="ISO-8859-1"?>
<programacao>
<agenda>
<data>17/02</data>
<cidade>Barueri</cidade>
<estado>SP</estado>
</agenda>
<agenda>
<data>19/02</data>
<cidade>Maringá</cidade>
<estado>PR</estado>
</agenda>
<agenda>
<data>17/03</data>
<cidade>Cubatão</cidade>
<estado>SP</estado>
</agenda>
</programacao>
Até aí tudo ok .. согласен quando faço o parser com o seguinte:
-(id)loadXMLByURL:(NSString *)urlString
{
minhaAgenda = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
[parser parse];
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSMutableString
*)elementName
namespaceURI:(NSMutableString *)namespaceURI qualifiedName:
(NSMutableString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"agenda"])
{
currentEvento = [Agenda alloc];
currentNodeContent = [[NSMutableArray alloc] init];
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSMutableString
*)elementName namespaceURI:(NSMutableString *)namespaceURI
qualifiedName:(NSMutableString *)qName
{
if ([elementName isEqualToString:@"agenda"])
{
[minhaAgenda addObject:currentEvento];
[currentEvento release];
currentEvento = nil;
[currentNodeContent release];
currentNodeContent = nil;
}
if ([elementName isEqualToString:@"cidade"])
{
currentEvento.cidade = currentNodeContent;
}
if ([elementName isEqualToString:@"estado"])
{
currentEvento.estado = currentNodeContent;
}
if ([elementName isEqualToString:@"data"])
{
currentEvento.data = currentNodeContent;
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString
*)string
{
currentNodeContent = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", currentNodeContent);
}
Как palavras acentuadas ficam truncadas .. vejo quebradas emВарианты linhas no Log ... тип. Куба на внешней линии ão ... Maring e na outra linha á
Já tentei vários recursos, mas quando jogo na Table View как palavras acentuadas sicicam os pedaços.О, конечно, проблема разрешения?