Попытка разобрать не правильно сформированный XML с помощью NSXMLParser - PullRequest
0 голосов
/ 24 марта 2011

Я анализирую данные XML с помощью NSXMLParser и теперь замечаю, что элементы могут содержать ВСЕ символы, включая, например, &.Поскольку синтаксический анализатор выдает ошибку, когда сталкивается с этим символом, я заменял каждое вхождение этого символа.Теперь я хочу убедиться, что обработал каждый из этих символов, которые могут вызвать ошибки.Каковы они и как вы думаете, я должен справиться с этими персонажами лучше всего?Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

Чтобы ответить на половину вашего вопроса, в XML есть 5 специальных символов, которые вы, возможно, захотите экранировать:

<- заменить на & lt; </p>

> - заменить на & gt;

& - заменить на & amp;

'- заменить на'

и

"- заменить на"

Теперь для другой половины - как найти и заменить их, не заменяя также все теги и т. Д. Не так просто, но я бы посмотрел на регулярные выражения и NSRegularExpression: http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

Не забывайте, в зависимости от вашего варианта использования, также экранировать значения параметров в тегах;

0 голосов
/ 24 марта 2011

Вы должны кодировать эти символы, например, и становится &amp; или "становится &quot;

Когда он проходит через анализатор, он должен получиться в порядке. Другой вариант - использовать другой анализатор XML, напримерTBXML, который не выполняет проверку формата.

...