NSXMLParser и проблема

#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-адрес, поэтому я прошу любой другой вариант