Adott stílusú szövegek törlése OpenOffice.org-ban

Fórumok

Sziasztok,

van egy hosszú-hosszú OOo szövegem, amiből ki akarom törölni azokat a bekezdéseket, amelyek egy bizonyos bekezdésstílusúak. Próbálkozom Perl-lel megregexpelni az xml-t, de ez elég nehéznek tűnik.

Nem nagyon értek hozzá, de azt hiszem, az ilyet XSLT-vel (esetleg egy DOM vagy SAX alapú Perl programmal) könnyebb lenne megcsinálni. Tudnátok ebben ötleteket adni?

Így néz ki a törlendő rész:


<text:p text:style-name="GitĂĄr">F <text:s text:c="17"/>C <text:s text:c="5"/>F</text:p>

Köszi,
Kristóf

Hozzászólások

Szia

Nem Perl, hanem Python, de remélem jó lesz.
Onnantól kezdem, hogy megvan a contents.xml ami a szöveget tartalmazza.

#/usr/bin/python

content = './content.xml'
tagName = 'text:p'
attribute = 'text:style-name'
pattern = 'Gitár'

from xml .dom import minidom
doc = minidom.parse(content)
root = doc.documentElement
paragraphs = root.getElementsByTagName(tagName)

for i in range (len(paragraphs)):
if paragraphs[i].getAttribute(attribute) == pattern :
deleTag = paragraphs[i].parentNode.removeChild (paragraphs[i])
deleTag.unlink()

import codecs
doc.writexml(codecs.open(content,'w', 'utf-8'))

Okosítani még lehet, de az alapelv az látszik.

Üdv