Bonjour à tous,
Avant toute chose, je suis nouveau sur le forum (ceci est mon tout premier post). Je trouve généralement une solution à mon problème (ce site est très bien fournit, mais la je bloque ..)
je m'explique :
J'ai un fichier contenant du code XML, je dois récupérer des données dedans (au niveau des balises) pour l'insérer ensuite dans une table(oracle). Ma contrainte et que je dois le faire en bash et je ne dispose d'aucune interface graphique (j'ai juste un shell à disposition).
voici un exemple de code XML :
<recipientslist name="donnée importante à récupérer (notre premier champ)">
<recipient type="je ne m'en sert pas" nameref="donnée importante à récupérer (notre deuxième champ)"/>
</recipientslist>
<recipentslist name="une autre donée à récupérer.." (1er champ)>
<recipient type="je ne m'en sert pas" nameref="donnée importante à récupérer(notre deuxième champ)"/>
<recipient type="je ne m'en sert pas" nameref="également présent dans notre deuxième champ, on effectuera alors une concaténation avec le premier du dessus"/>
[..] il peut y avoir 1-2-x "<recipient type>"
</recipientslist>
<recipientslist> [ect...]
l'idée c'est de formater le fichier xml afin d'obtenir quelque-chose comme un tableau :
1er champ ; 2em champ
1er champ ; 2em champ + un autre 2em champ si "recipient type est en plusieurs fois "
pour formater j'ai pensé à sed , je supprime les deux premières lignes du fichier (header) et vire les espaces :
>$ cat Fichier_XML | sed -e 's/recipientslist//g;s/<//g;s/\///g;s/>//g;s/recipienttype//g;' |tr -d '[:blank:]'| sed 1,2d > Fichier_XML_Formaté
ce qui me donne pour le moment :
name = "donnée champ1"
nameref="donnée champ2"
comment puise-je l'insérer dans ma table oracle ? vu que je n'ai aucun séparateur... j'ai pensé à awk mais je ne vois pas trop comment
merci d'avoir pris le temps de me lire, j'espère avoir été le plus clair possible.. hésitez pas à me contacter si vous m'avez mal compris ou que vous avez une solution
Partager