#iphone #objective-c #nsxmlparser
#iPhone #objective-c #nsxmlparser
Вопрос:
Мой xml
<categoryname>Baby</categoryname>
<id>244</id>
<categoryname>Boats amp; Watercraft</categoryname>
<idc>1026</id>
Я получаю первые два узла.Моя проблема заключается в том, что на третьем узле я получаю только Boats (синтаксический анализатор обнаружил символы) и amp; отключает nsxmlparser. Я ищу этот форум и другие веб-сайты, большинство из которых публикуют use amp;amp;
вместо amp; в xml. Мой xml поступает с сервера, и я не буду обновлять xml сейчас.Есть ли какой-либо другой вариант решения этой проблемы.
Ответ №1:
Если вы настаиваете на отправке недопустимого XML со своего сервера, это должно решить проблему:
[xmlString stringByReplacingOccurrencesOfString:@"amp;" withString:@"amp;amp;"]:
// parse xmlString
[categoryName stringByReplacingOccurrencesOfString:@"amp;amp;" withString:@"amp;"]:
Комментарии:
1. это правильно. и еще одна вещь, которую я удаляю пробелом в конце этой строки. я использую [string stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@» n t»]]; этот код также будет обрезать середину строки.
Ответ №2:
Если ваш xml может поступать из какого-либо php-скрипта, то перед его отправкой вы должны внести изменения в свой скрипт, чтобы при появлении символа amp; он заменялся другим символом, таким как $ или любым другим, а затем отправлялся. И когда вы проанализируете этот xml, измените этот символ на требуемый символ. Я также сделал то же самое.
Комментарии:
1. наш xml — это скрипт asp. у нас нет доступа к серверу. наш клиент уже предоставляет URL-адрес, поэтому я прошу любой другой вариант