2009-12-16 5 views
3

J'utilise NSXMLParser sur une application iPhone pour analyser des fichiers HTML pour un lien de flux RSS ou Atom. Tout fonctionne bien jusqu'à ce que l'analyseur trouve un élément <script> qui inclut du code Javascript sans la déclaration CDATA, ce qui provoque une erreur d'analyse.Rendre NSXMLParser ignorer un élément

Est-il possible de dire à l'analyseur d'ignorer tous les éléments nommés <script>?

Répondre

0

Pourquoi ne pas simplement implémenter parser: parseErrorOccured: et lui dire d'échouer gracieusement? Je ne crois pas qu'il y ait un moyen de dire 'sauter cet élément'

+0

Malheureusement, je ne peux pas le faire parce que j'ai besoin d'extraire le lien d'un flux RSS, puis enregistrez-le. J'ai essayé sur plusieurs pages et cela fonctionne (même si parseErrorOccurred est appelé), mais s'il y a une balise de script avant la balise link, l'analyseur interrompt sans rien faire. – Lex

0

À ma connaissance, il n'est pas possible d'ignorer un élément. Cependant, vous pouvez utiliser le remplacement de regex pour filtrer le contenu invalide.

Une autre possibilité serait peut-être d'utiliser Tidy pour essayer de le nettoyer avant l'analyse.