Notre application est à la réception pour effectuer une rétro-analyse de données XML. Notre application n'a pas Java ou .NET disponible, mais fonctionne sous Unix, donc elle a awk et Perl.supprimer xml déclaration de xml Données utilisant perl ou awk
Les messages XML dans le fichier contient:
<?xml version="1.0" encoding="ISO-8859-1" ?>
J'ai essayé quelques options en Perl et awk pour les faire retirer, mais n'a pas pu obtenir ces à travailler:
perl -p -i -e "s/<?xml version="1.0" encoding="ISO-8859-1" ?>//g" inputFile
perl -p -i -e "s/<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>//g" inputFile
perl -p -i -e "s/<\?xml version="1.0" encoding="ISO-8859-1" \?>//g" inputFile
Tous autre option pour le faire en utilisant PERL ou AWK?
Utilisez-vous un analyseur XML lors de la réception du code XML? La déclaration XML est utile pour un analyseur, et essayer de traiter n'importe quel XML significatif avec n'importe quoi sauf un analyseur conduira à la folie. Et, si vous êtes sous Unix, vous avez toutes sortes de langues à votre disposition, si vous les installez. –
Jetez un oeil à "[Comment puis-je extraire un document XML avec awk, Perl, ou Python?] (Http://stackoverflow.com/a/909076/128421)" pour une réponse similaire. –
Votre code Perl ne fonctionne pas car '?' Est un métacaractère d'expression régulière. Remplacez le '?' Par '.' ou' \? 'Dans chaque cas et vous devriez être OK. –