Forum Programmation.shell sed et XML

Posté par  .
Étiquettes : aucune
0
13
juil.
2005
Yep,

J'ai besoin de traiter un flux XML, mon pb est simple.
Dans ce flux il y a des champs description avec des ' et des "...
Vous vous doutez bien que ça pose pb avec MYSQL derrière :(
J'utilise donc sed pour remplacer mes quotes et mes guillements ce qui marche nickel !
J'ai un unique pb, le nouveau fichier XML reconstitué commence du coup par :
<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
Et ça sa passe pas :(:(
Donc comment dire a sed tu m'appliques toutes mes regles sauf sur les deux premières lignes ?????

Merci d'avance.

P.S : Ce traittement est automatique, je ne suis pas devant donc hélas je ne peux pas me contenter d'un bon vieux ctrl-F !!
  • # un truc goret?

    Posté par  . Évalué à 2.

    head -1 monfichier.xml > entete.xml
    tail +2 monfichier.xml | sed xxxxxxx > corps.xml
    cat entete.xml corps.xml > resultat.xml

    mais j'ai prévenu c'est goret :-)
    • [^] # Re: un truc moins goret

      Posté par  . Évalué à 1.

      On peut spécifier une plage d'adresses à sed avant la commande sous la forme addr1,addr2. Donc ta commande devrait donner quelque chose comme :

      cat truc.xml | sed -e "3,\$s/\"/\\\"/g"

      qui remplace les " par des \" à partir de la 3ème ligne jusqu'à la fin :
      $ représente la dernière ligne (et doit être protégé du shell par un `\')

      Il y a un peu plus de détails dans le manuel sur les possibilités des adresses.
      • [^] # Re: un truc moins goret

        Posté par  . Évalué à 3.

        cat truc.xml | sed -e "3,\$s/\"/\\\"/g"
        NAN
        sed -e "3,\$s/\"/\\\"/g" truc.xml
        • [^] # Re: un truc moins goret

          Posté par  . Évalué à 1.

          OK alors voilà ce que je fais :
          sed -e "3,\$s/\"/\\\"/g" truc.xml >> truc2.xml

          et voilà l'erreur qu'il me sort, j'ai la même erreur si je fais :
          sed -e "3,\$s/\"/\\\"/g" truc.xml >> truc.xml

          Error [code:2] [URI:file:///home/truc/truc.xml] [line:397]
          XML parser error 9: junk after document element


          Le pb vient du fait que j'ai des lignes vierges à la fin du fichier xml modifié je crois :S
          • [^] # Re: un truc moins goret

            Posté par  . Évalué à 1.

            En plus même si je met vos deux modifications il n'y a aucun changement dans mon fichier XML.
            Les " et ' y sont tjrs :(

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.