Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
wazou1812 a écrit:
J'abandonne PBDOM, le removecontent fonctionne 'bien', mais au final la ligne n'est pas supprimée.
Tu as bien pensé à sauver ton document à la fin ? Parce que toutes les manips sur les objets (PB)DOM se font seulement en mémoire...

Hors ligne
avec sed :
sed.exe -i -e"s/xsi:nil='true'//g" orifile.xml
Dernière modification par xlat (13-10-2011 15:18:19)
Hors ligne














c'est trop imba de remplacer 10 lignes de code par une commande DOS, pourquoi faire simple hein ?
Hors ligne







seki a écrit:
wazou1812 a écrit:
J'abandonne PBDOM, le removecontent fonctionne 'bien', mais au final la ligne n'est pas supprimée.
Tu as bien pensé à sauver ton document à la fin ? Parce que toutes les manips sur les objets (PB)DOM se font seulement en mémoire...
Lorsque j'ai terminé toutes les manipulations sur mon fichier, j'utilise
i_PBDOM_DOCUMENT_SHIP.savedocument(nom_de_fichier )
et également
li_ret = XMLParseString(i_PBDOM_DOCUMENT_SHIP.SaveDocumentIntoString( ), ValAlways!, ls_erreur)
C'est bien cela que tu appelle 'sauver le document ?
Merci
Hors ligne
erasorz a écrit:
c'est trop imba de remplacer 10 lignes de code par une commande DOS, pourquoi faire simple hein ?
bientôt tu va me traiter de lamer...
Dernière modification par xlat (13-10-2011 15:32:49)
Hors ligne














xlat a écrit:
bientôt tu va me traiter de lamer...

Hors ligne
wazou1812 a écrit:
C'est bien cela que tu appelle 'sauver le document ?
Oui, c'était juste pour vérifier.
Des fois je code des trucs, et j'oublie d'appeler le nouveau code, ce qui revient un peu au même. ^_^
C'est intriguant.
Quand tu disais que le RemoveContent() fonctionne, c'est parce qu'il n'y a pas d'erreur ?
Si tu re-cherches à nouveau la chaine xsi:nil dans le pbdom_document après suppression, tu ne retombes plus dessus ?

Hors ligne
xlat a écrit:
bientôt tu va me traiter de lamer...
C'est marrant que t'utilises ce smiley : on dirait un programme perl dans la bulle

Hors ligne







seki a écrit:
wazou1812 a écrit:
C'est bien cela que tu appelle 'sauver le document ?
Oui, c'était juste pour vérifier.
![]()
Des fois je code des trucs, et j'oublie d'appeler le nouveau code, ce qui revient un peu au même. ^_^
C'est intriguant.![]()
Quand tu disais que le RemoveContent() fonctionne, c'est parce qu'il n'y a pas d'erreur ?
Si tu re-cherches à nouveau la chaine xsi:nil dans le pbdom_document après suppression, tu ne retombes plus dessus ?
Voici le code que j'ai mis pour supprimer cette ligne
ong ll_row PBDOM_Object pbdom_obj_array[] I_PBDOM_DETAIL_FINAL.GetRootElement().GetChildElement("InvoiceDetailRequest").GetChildElement ("InvoiceDetailSummary").GetChildElement ("Tax").GetContent(pbdom_obj_array) For ll_row = 1 to upperbound(pbdom_obj_array[]) if pbdom_obj_array[ll_row].GetTextTrim() = "xsi:nil='true'" then messagebox ( , pbdom_obj_array[ll_row].GetTextTrim() + " ll_row : " + string(ll_row)) I_PBDOM_DETAIL_FINAL.GetRootElement().GetChildElement("InvoiceDetailRequest").GetChildElement ("InvoiceDetailSummary").GetChildElement ("Tax").RemoveContent(pbdom_obj_array[ll_row]) //dans le fichier en question, il y a encore la ligne parasite i_PBDOM_DOCUMENT_SHIP.savedocument("C:\Espace\Espacev10\xml\test.xml" ) exit end if NEXT For ll_row = 1 to upperbound(pbdom_obj_array[]) if pbdom_obj_array[ll_row].GetTextTrim() = "xsi:nil='true'" then messagebox ( , pbdom_obj_array[ll_row].GetTextTrim() + " ll_row : " + string(ll_row)) I_PBDOM_DETAIL_FINAL.GetRootElement().GetChildElement("InvoiceDetailRequest").GetChildElement ("InvoiceDetailSummary").GetChildElement ("Tax").RemoveContent(pbdom_obj_array[ll_row]) exit end if NEXT
Dans la 1ere boucle, il passe bien sur le removecontent sans erreur, mais le fichier sauvegardé contient toujours la phrase parasite
Et effectivement, ce qui est bizarre, c'est qu'il repasse dans la 2eme boucle, et donc qu'il retrouve la phrase parasite, mais par contre, il plante sur l'instruction removecontent
Je suis banie!!
Hors ligne
tu te serais pas fais avoir par le copier/coller ?
I_PBDOM_DETAIL_FINAL.GetRootElement().GetChildElement("InvoiceDetailRequest").GetChildElement ("InvoiceDetailSummary").GetChildElement ("Tax").RemoveContent(pbdom_obj_array[ll_row])
//dans le fichier en question, il y a encore la ligne parasite
i_PBDOM_DOCUMENT_SHIP.savedocument("C:\Espace\Espacev10\xml\test.xml" )
exit
I_PBDOM_DETAIL_FINAL <> i_PBDOM_DOCUMENT_SHIP
sinon c'est quoi l'exception qui est levée ?
Dernière modification par xlat (13-10-2011 16:27:10)
Hors ligne







xlat a écrit:
tu te serais pas fais avoir par le copier/coller ?
Code: pb
I_PBDOM_DETAIL_FINAL.GetRootElement().GetChildElement("InvoiceDetailRequest").GetChildElement ("InvoiceDetailSummary").GetChildElement ("Tax").RemoveContent(pbdom_obj_array[ll_row]) //dans le fichier en question, il y a encore la ligne parasite i_PBDOM_DOCUMENT_SHIP.savedocument("C:\Espace\Espacev10\xml\test.xml" ) exit
I_PBDOM_DETAIL_FINAL <> i_PBDOM_DOCUMENT_SHIP
sinon c'est quoi l'exception qui est levée ?
Mais oui, mais c'est bien sur
I_PBDOM_DETAIL_FINAL <> i_PBDOM_DOCUMENT_SHIP
Je n'étais pas sur le bon objet, quelle bille!!!
Et vous n'allez pas me croire, cette phrase de , on a vous avez fini par l'avoir, la partie du fichier est enfin impeccable
Un grand merci à tous, je mets le sujet en Résolu
Hors ligne