Bonjour,

Plutôt que de faire un long discours, voici un exemple concret de ce que je cherche à faire avec QtXml et notamment la méthode DOM.
Note: je viens de PyQt, peut être que la syntaxe que je vais employer n'est pas la même qu'en Qt, mais ça ne devrait pas poser trop de souci en théorie

Soit la chaîne de caractères suivante :
Bonjour, toto ceci est le début de la chaîne tata et là la fin titi de celle ci.
J'ai créé une petite fonction permettant de sortir une liste de la forme suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
["Bonjour, ","toto"," ceci est le début de la chaîne ", "tata", " et là la fin ", "titi","  de celle ci."]
.
J'ai en fait coupé ma chaîne en plusieurs parties.

Le but étant au final de créer un sous élement XML de cette forme :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<txt>Bonjour, <txt2>toto</txt2> ceci est le début de la chaîne <txt2>tata</txt2> et là la fin <txt2>titi</txt2>  de celle ci.</txt>

Au moment d'écrire ces quelques lignes, le mieux que j'ai pu faire c'est ça
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<txt>Bonjour, <txt2>toto</txt2></txt>
<txt>ceci est le début de la chaîne <txt2>tata</txt2></txt>
<txt>et là la fin <txt2>titi</txt2>  de celle ci.</txt>

Via ce morceau de code (désolé, c'est du python)
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
def bodydivXml_txt(self,  balise,  txt):
    if balise == "txt":
        self.bodydiv_description = self.doc.createElement(balise)
        self.bodydiv.appendChild(self.bodydiv_description) ##self.bodydiv étant le sous élément parent
 
        txtDescription = self.doc.createTextNode(txt)
        self.bodydiv_description.appendChild(txtDescription)
    else:
        self.bodydiv_autre = self.doc.createElement(balise)
        self.bodydiv_description.appendChild(self.bodydiv_autre)
 
        txtDescription = self.doc.createTextNode(txt)
        self.bodydiv_autre.appendChild(txtDescription)

Quelqu'un a-t-il déjà eu à traiter ce genre de problème, ou quelqu'un aurait il une piste, car là je bloque un peu.

D'avance merci à tous, et encore désolé pour le code en Python

[EDIT]
Et bien voila, après un bon repas, un petit café tout devient plus facile. Plutôt que de chercher à passer les différents éléments de ma liste à la fonction bodydivXml_txt, je lui passe la liste entière et fait le traitement ensuite. Tout simplement.
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
 
def bodydivXml_txt(self,  balise,  liste):
    self.bodydiv_txt = self.doc.createElement(balise)
    self.bodydiv.appendChild(self.bodydiv_txt)
 
    if len(liste) != 0:
        for i in liste:
            if i[0] == "txt":
                txtDescription = self.doc.createTextNode(i[3])
                self.bodydiv_txt.appendChild(txtDescription)
 
            else:
                self.bodydiv_autre = self.doc.createElement(i[0])
                self.bodydiv_txt.appendChild(self.bodydiv_autre)
                txtAutre = self.doc.createTextNode(i[3])
                self.bodydiv_autre.appendChild(txtAutre)