Extraire un paragraphe à partir d'un texte

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

j'ai un fichier XML qui contient
des milliers de fiches. ces fiches commencent par <FICHE> et se terminent par </FICHE>. dans chaque fiche il ya plusieurs informations et chaque information commence par un tag , exempel : un identifiant <IDINFO> .
il y a aussi du texte, dont le tag est <TEXTE_ITEM>.
voici un extrait d'une fiche:

<FICHE>
<IDINFO>6372657</IDINFO>
<NOANNONCE>16</NOANNONCE>
<IDORIGINE>5875391</IDORIGINE>
<IDDOUBLON NULL="TRUE"/>
<IDINFODOUBLON NULL="TRUE"/>
<DATECRE>25/01/2008</DATECRE>
<OBJET>CONSTRUCTION D' UN ACCUEIL DE LOISIRS INTERCOMMUNAL A NERIS-LES-BAINS</OBJET>
<REFMARCHE NULL="TRUE"/>
<CP>03600</CP>
<ORGA>OPAC DE COMMENTRY, 16, RUE AUJAME 03600 COMMENTRY</ORGA>
<CONTACT>M. J. Berthomier</CONTACT>
<ROLECONTACT>
<TEXTE_ITEM>Attribution des marches ou des lots : </TEXTE_ITEM>
<TEXTE_ITEM>Nom du titulaire/organisme : FERNANDES, za du Max, 03630 Desertines.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Nom du titulaire/organisme : Groupement SMC BTP (mandataire) / GIL TP ( co-traitant), 100, rue Pierre Duhem ZAC La Robole Batiment A - zI Les Milles, 13856 Aix-en-Provence Cedex 3.</TEXTE_ITEM> <TEXTE_ITEM>Montant final du marche ou du lot attribue (H.T.) : 395 000 EUR.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 17 septembre 2007 Numero du marche ou du lot : 3. - couverture - etancheite.</TEXTE_ITEM>
</FICHE>


en fait, avec Unix, je veux extraire pour chaque fiche les lignes contenant l'identifiant <IDINFO> et les lignes contenant les mot clés : groupements, mandataires, chef de file.. .
Pour les lignes contenant les mots clés, je veux la ligne en question + les 3 lignes précedentes et 3 lignes suivantes.

pour avoir un paragraphe comme suit:

(6372657) Nom du titulaire/organisme : Groupement SMC BTP (mandataire) / GIL TP ( co-traitant), 100, rue Pierre Duhem ZAC La Robole Batiment A - zI Les Milles, 13856 Aix-en-Provence Cedex 3

est ce que cest possible, parceque depuis quelques jours j'essaie mai rien ne marche; merci pour votre aide.

4 réponses

mamiemando Messages postés 34229 Date d'inscription   Statut Modérateur Dernière intervention   7 897
 
Le mieux serait de programmer dans un langage (de ton choix) qui propose une librairie pour parser des fichiers XML (soit presque n'importe quel langage un temps soit peu évolué).

Bonne chance
0
ripat_ Messages postés 61 Statut Membre 6
 
Si ton fichier est strictement comme ton exemple, ceci devrait fonctionner:

awk -F"<[^>]+>" '/<IDINFO>/{id=$2}/<TEXTE_ITEM>/{f+=1}f==3{printf"(%s) %s\n",id,$2;f=0}/<FICHE>/{f=0}' in_file
0
Utilisateur anonyme
 
Les fiches sont différentes y en a avec 20 lignes et d'autres avec 90 ou 80 ou 15 lignes. aussi, sur certaines fiches il y a les mots "groupement" ou "mandataire" (les mots clés sur lesquels je veux faire l'extraction des lignes) et sur d'autres y en a pas et donc moi je veux extraire ou afficher que les lignes des fiches ki contiennent les mot clés sus-cités.
donc je veux lui dire:
" affiche moi -à partir de chal fiche- l'identifiant et la ligne ki contient le mot "groupement" ou le mot "mandataire" ou le mot "cotraitant" avec les 3 lignes precedentes et les 3 lignes suivantes , toute en sachant k'une fiche commence par <FICHE> et se termine par </FICHE> "
mais je ne sais pas traduire sa en programme !!!!
0
Utilisateur anonyme
 
voila comment je veux: il y a que les lignes ou il ya l'un des mots clés "groupement" "mandataire", "cotraitants"...

(6979814) nombre d'offres recues : 5 andre chenue sa (mandataire du groupement conjoint avec globart - 151 bld haussmann - paris 8eme)., 5 boulevard ney, f-,75018 paris. tel. : 01 53 26 68 00. fax : 01 40 37 22 28. v.5) le marche est susceptible d'etre sous-traite


(6425599) nombre d'offres recues : antoine espaces verts (mandataire du groupement antoine espaces verts et courserant sas), zi rossignol, f-,47110 sainte livrade sur lot. estimation initiale du montant du marche
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Je ne vois pas trace des "3 lignes précédentes" ni "des 3 suivantes" dans cet exemple ?! ;-\
0
Utilisateur anonyme
 
si mais elle sont reliées.

exemple:

(6425141) nom du titulaire/organisme : aqua d'oc, b.p. 53 - za des rodettes, 34120 pezenas. montant final du marche ou du lot attribue (h.t.) : 144 515 eur. 28 novembre 2007 nom du titulaire/organisme : en groupement avec tpsm, 12 rue blondel, 34500 beziers. date d'attribution du marche : 28 novembre 2007

ce paragraphe dans la source (dans ma fiche XMl) est ecrti comme sa:

<TEXTE_ITEM>Nom du titulaire/organisme : PROG +, zac Pole actif - 26 avenue de la Fontanisse, 30660 Gallargues-le-Montueux.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Montant final du marche ou du lot attribue (H.T.) : 157 950 EUR.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 28 novembre 2007 Numero du marche ou du lot : 2. - travaux d'equipement hydraulique et electrique de la station de pompage, y compris canalisations et reseaux enterres pour raccordement au reseau a l'exterieur de l'ouvrage.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Nom du titulaire/organisme : AQUA D'OC, B.P. 53 - zA des Rodettes, 34120 Pezenas.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Montant final du marche ou du lot attribue (H.T.) : 144 515 EUR.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 28 novembre 2007 Nom du titulaire/organisme : En groupement avec</TEXTE_ITEM>
<TEXTE_ITEM>TPSM, 12 rue Blondel, 34500 Beziers.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 28 novembre 2007</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'envoi du present avis a la publication : 29 janvier 2008.</TEXTE_ITEM>

pourquoi je veux les lignes suivantes, parceque j'ai besoin d'information et des fois cette information se trouve non sur la ligne où il y a le mot clé mais sur la suivante ou celle d'aprés .
0