2

我正在使用 NSXMLParse 来解析我的 file.xml。它确实有效,但是当我提取这个 file.xml 的内部文本时,一些单词被剪掉了,我想这是一个编码问题。

例如,我的 file.xml 的一小部分:

<?xml version="1.0" encoding="UTF-8" ?> 
<book>
<titulo>Síndrome de Tietê</titulo> 
<pagina numero="1">
<linha numero="1">A luz forte do sol lá fora fazia um grande contraste com o escuro do cômodo.</linha> 
<linha numero="2">Poucas pessoas. Móveis rústicos e panelas penduradas, com teias de aranha. Gente magra.</linha> 
</pagina>
</book>

所以,当我解析和提取''时,内容是:'á fora fazia um grande contraste com o escuro do cômodo'

INSTEAD OF 'A luz forte do sol lá fora fazia um grande contraste com o escuro do cômodo'

我不知道为什么,但是当出现这样的单词'á'时它会切断短语。所有标签都会发生这种情况,总是有这样的东西在里面 'á,ó,ô,é...'

出于这个原因,我想知道是否与我的 XML 文件中的“编码”有关。

我加载 XML 文件的代码:

-(id)loadXMLByURL:(NSString *)fileName:(NSString *)extName {
    NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extName];
    NSData *xmlData = [NSData dataWithContentsOfFile:xmlFilePath];
    xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
    xmlParser.delegate = self;
    [xmlParser parse];
    return self;
}

调用上述函数:

xmlCon = [[XMLControl alloc] loadXMLByURL:@"geracao":@"xml"];

有任何想法吗?

4

1 回答 1

0

首先要检查的是 XML 文件顶部声明的编码是否实际上是文件的编码内容。老式的检查方法是查看十六进制转储或八进制转储的输出并验证字符像 í 由预期的两字节序列表示。更简单的检查方法是在理解字符编码概念的编辑器(几乎所有编程编辑器)中查看文件,并查看文件所用的编码。如果它与声明不匹配,XML 解析器将误解文件。

于 2011-07-07T14:18:49.993 回答