PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → XMLSupprime - ligne blanche
XMLSupprime - ligne blanche
Débuté par Jean-Yves THIRY, 29 aoû. 2025 13:40 - 3 réponses
Membre enregistré
190 messages
Posté le 29 août 2025 - 13:40
Bonjour

Lors de la suppression d'un élément dans un fichier XML avec la commande XMLSupprime, le bloc de l'élément est bien effacé dans le fichier mais une ligne "blanche" reste et cela pose des problèmes lors de traitements ultérieurs.

Est-ce normal ?
Avez-vous une solution ?

Bàv

--
Jean-Yves Thiry
Informatique et Gestion
Membre enregistré
2 255 messages
Posté le 29 août 2025 - 14:47
Bonjour Jean-Yves,

Illustration du problème SVP :)

--
Bon dev,
Jean-Pierre
Membre enregistré
190 messages
Posté le 01 septembre 2025 - 05:44
Merci pour votre retour...

Voici le code :

XMLDocument(sMonDocXML,sInfoXML)
XMLRacine(sMonDocXML)
XMLRecherche(sMonDocXML,"PartyTaxScheme",XMLBalise+XMLSousElément+XMLContinue,XMLExact)
TANTQUE XMLTrouve(sMonDocXML)=Vrai
XMLSupprime(sMonDocXML)
XMLSuivant(sMonDocXML)
FIN
SourceXML=XMLConstruitChaîne(sMonDocXML)
fSauveTexte(val_fic,SourceXML)
XMLAnnuleRecherche(sMonDocXML)
XMLTermine(sMonDocXML)

Une partie du fichier XML avant traitement :

<cac:PartyName>
<cbc:Name>XXXXXX</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>XXXXXX</cbc:StreetName>
<cbc:CityName>XXXXXX</cbc:CityName>
<cbc:PostalZone>XXXXXX</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>XX</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>XXXXXX</cbc:RegistrationName>
</cac:PartyLegalEntity>


La même partie du fichier XML après traitement (avec la ligne vide) :

<cac:PartyName>
<cbc:Name>XXXXXX</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>XXXXXX</cbc:StreetName>
<cbc:CityName>XXXXXX</cbc:CityName>
<cbc:PostalZone>XXXXXX</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>XX</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>

<cac:PartyLegalEntity>
<cbc:RegistrationName>XXXXXX</cbc:RegistrationName>
</cac:PartyLegalEntity>

--
Jean-Yves Thiry
Informatique et Gestion
Membre enregistré
2 255 messages
Posté le 01 septembre 2025 - 11:44
Bonjour Jean-Yves,

Je suppose que tu as soumis le problème au ST. Quelle est leur réponse ?

Provisoirement, il faudrait :
1. Vérifier que la ligne vide est bien vide dans SourceXML via le debugger
2. Ajouter une fonction pour remplacer un double RC par un simple RC avant le le fSauveTexte(val_fic,SourceXML)
3. Je n'y crois pas beaucoup mais tu peux tester le retour de XMLSupprime().

NB : merci de mettre le code WL entre les balise ad hoc dans le post. ;)

--
Bon dev,
Jean-Pierre