これは私のXMLです:
<?xml version="1.0" encoding="UTF-8"?>
<Tests>
<Test case="1">
<str>200000</str>
</Test>
<Test case="2">
<str>200thousand</str>
</Test>
<Test case="3">
<str>共20萬</str>
</Test>
<Test case="4">
<str>20萬</str>
</Test>
</Tests>
これはパーサーの一部であり、ほとんどのチュートリアルで見つけたので非常に標準的です。
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(!currentElementValue)
currentElementValue = [[NSMutableString alloc] initWithString:string];
else
currentElementValue =
(NSMutableString *) [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
次に、この行を使用して、各 currentElementValue を解析して testObj の各変数に変換します
[testObj setValue:currentElementValue forKey:elementName];
コードは XML を testObj に正常に解析します。ただ、問題はケース4の「20」が消えていることです。つまり、要素が数値で始まり、その後に漢字が続くと、数値は消えます。
その上、私が使用する場合:
[currentElementValue appendString:string];
それ以外の:
currentElementValue =
(NSMutableString *) [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
要素はすべての文字を表示できますが、多くの空白で始まります。
数値が消えた理由を理解し、先頭に空白を付けずにすべての文字を表示する解決策を探したいと思います。
あなたが提供するのに十分親切な助けを前もって感謝します!