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
- 1082 megtekintés
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
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen! Mennyivel szebb ez, mint a regexp! (Bár végülis sikerült azzal is megcsinálnom, de csak mert mázlim volt a sémával - nem voltak nested text:p mezők)
Ez sokkal általánosabb megoldás, elraktározom.
K.
- A hozzászóláshoz be kell jelentkezni