Можно обобщить его, но существует, не участвуют в Java, как Вы хорошо говорите.
Это могло бы работать лучше.
public static String join(Iterable extends CharSequence> s, String delimiter) {
Iterator extends CharSequence> iter = s.iterator();
if (!iter.hasNext()) return "";
StringBuilder buffer = new StringBuilder(iter.next());
while (iter.hasNext()) buffer.append(delimiter).append(iter.next());
return buffer.toString();
}
Вы можете преобразовать строку в объект NSData с помощью метода dataUsingEncoding:
NSData *data = [myString dataUsingEncoding:NSUTF8StringEncoding];
Затем вы можете передать это в NSXMLParser.
Заголовки необязательны, но при необходимости вы можете сами вставить соответствующие заголовки:
NSString *header = @"<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
NSString *xml = [NSString stringWithFormat:@"%@\n%@", header, response);
NSData *data = [xml dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser *praser = [NSXMLParser initWithData:data];
К тому времени, когда NSXMLParser
получит данные, он будет ожидать, что это будет XML ;-)
Я почти уверен, что заголовок инструкции обработки необязательный в этом контексте. То, как вы вставляете NSString
в NSData
, будет определять кодировку (используя dataUsingEncoding:
).
(правка: Я искал encoding enum, но Philippe Leybaert опередил меня, но все равно повторить его здесь, например: [nsString dataUsingEncoding: NSUTF8StringEncoding]
)
Я прошел NSString
s из XML таким способом раньше без проблем.
Не относится к этому вопросу как таковому, но по теме синтаксического анализа XML в контексте iPhone в целом вы можете найти эту мою запись в блоге интересной,