Bonjour à tous,

Tout d'abord voici 2 scripts,
le premier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import odf.opendocument
import odf.text
doc = odf.opendocument.OpenDocumentText()
 
 
p1 = odf.text.P(parent=doc.text, text="paragraphe 1",classnames="1")
p2 = odf.text.P(parent=doc.text, text="paragraphe 2",classnames="2")
p3 = odf.text.P(parent=doc.text, text="paragraphe 3",classnames="3")
p4 = odf.text.P(parent=doc.text, text="paragraphe 4",classnames="4")
 
 
p1.parentNode.removeChild(p1)
p2.parentNode.removeChild(p2)
p3.parentNode.removeChild(p3)
p4.parentNode.removeChild(p4)
 
 
liste2=doc.getElementsByType(odf.text.P)
print('liste2 : ',liste2) # Sans surprise, il n'y a aucun paragraphe...
et donc ce code fonctionne.

le second :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import odf.text
doc = odf.opendocument.OpenDocumentText()
 
 
p1 = odf.text.P(parent=doc.text, text="paragraphe 1",classnames="1")
p2 = odf.text.P(parent=doc.text, text="paragraphe 2",classnames="2")
p3 = odf.text.P(parent=doc.text, text="paragraphe 3",classnames="3")
p4 = odf.text.P(parent=doc.text, text="paragraphe 4",classnames="4")
 
liste=doc.getElementsByType(odf.text.P)
print('len de liste : ',len(liste))
 
for p in doc.getElementsByType(odf.text.P) :
    #doc.clear_caches()
    p.parentNode.removeChild(p)
 
#doc.clear_caches()
liste2=doc.getElementsByType(odf.text.P)
print('len de liste2 : ',len(liste2)) # --> 2
 
doc.save(r"C:\Users\chris\Documents\mesScryptPython\fichiers odt\tester_suppression.odt") # Pourquoi 2 paragraphes !!!
Pourquoi ce code ne fonctionne pas ?

J'ai beau essayez d'utiliser
doc.clear_caches()
mais sans succès.
Si l'un de vous à un début de solution...