Gisteren heb ik een hele tijd gezocht naar een oplossing om uit een groot XML-bestand een aantal tags met tussenliggende tekst te wissen. Het is niet gelukt. Graag jullie hulp.
Ik heb het volgende stukje bestand:
en daar wil ik alles tussen en met de "vendor" tags uit verwijderen. Natuurlijk kan ik dat even scripten met python o.i.d., maar het zou ook moeten kunnen met Vim en regular expressions. Maar hoe?
Ik heb het zo geprobeerd:
Dit selecteert de hele start regel van de tag, maar niet het vervolg t/m de eindtag.
Maar hierbij selecteert de RE alles vanaf de starttag tot het einde van het bestand.
Verder heb ik nog allerlei combinaties geprobeerd.
Kan iemand mij helpen een goede RE op te stellen die dit probleem verhelpt? Ik probeer RE te leren, dus een beetje uitleg erbij is erg welkom.
Ik heb het volgende stukje bestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| [....]
<column name="SampZipcode" type="VARCHAR" size="15">
<vendor type="mysql">
<parameter name="Field" value="SampZipcode"/>
<parameter name="Type" value="varchar(15)"/>
<parameter name="Null" value="YES"/>
<parameter name="Key" value=""/>
<parameter name="Default" value=""/>
<parameter name="Extra" value=""/>
</vendor>
</column>
<column name="RespCity" type="VARCHAR" size="15">
<vendor type="mysql">
<parameter name="Field" value="RespCity"/>
<parameter name="Type" value="varchar(15)"/>
<parameter name="Null" value="YES"/>
<parameter name="Key" value=""/>
<parameter name="Default" value=""/>
<parameter name="Extra" value=""/>
</vendor>
</column>
[...] |
en daar wil ik alles tussen en met de "vendor" tags uit verwijderen. Natuurlijk kan ik dat even scripten met python o.i.d., maar het zou ook moeten kunnen met Vim en regular expressions. Maar hoe?
Ik heb het zo geprobeerd:
code:
1
| /<vendor\_.[^\/]* |
Dit selecteert de hele start regel van de tag, maar niet het vervolg t/m de eindtag.
code:
1
| /<vendor[vendor]\_.* |
Maar hierbij selecteert de RE alles vanaf de starttag tot het einde van het bestand.
Verder heb ik nog allerlei combinaties geprobeerd.
Kan iemand mij helpen een goede RE op te stellen die dit probleem verhelpt? Ik probeer RE te leren, dus een beetje uitleg erbij is erg welkom.