[R] Effacer un node (XML)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[R] Effacer un node (XML)

#1

Message par GhostLine »

Hello guys !

Je reviens vers vous car je rencontre un petit problème dans un script que je rédige pour mon nouveau boulot (et oui, encore un nouveau :)).

Code : Tout sélectionner

[..]

$ar_file = _FileListToArray($filepath, "*.xml", 0, True)
Local $iRET = _XML_CreateDOMDocument(Default)
For $i = 1 To $ar_file[0]
	_XML_Load($iRET, $ar_file[$i])
	$aRET = _XML_GetNodesCount($iRET, "/TAS")
	$adIncludedTaxValue = _XML_GetValue($iRET, "/TAS/NEW_TA/TAX_ART/dIncludedTaxValue")
	$dPercent = _XML_GetValue($iRET, "/TAS/NEW_TA/TAX_ART/TAX/dPercent")

	If $adIncludedTaxValue = 0 And $dPercent = 0 Then
		_XML_DeleteNode($iRET, '//TAS/NEW_TA/ART_SALE/ARTICLE/szItemTaxGroupExternalID')
	EndIf
Next
[..]
Alors je ne sais pas si je me sers mal de _XML_DeleteNode ou quoi, mais impossible d'effacer cette ligne (je cherche bien à faire complètement disparaitre la ligne "<szItemTaxGroupExternalID>0</szItemTaxGroupExternalID>").

Pour le fichier XML (données confidentielles, désolé pour le gros coup de ciseaux) :

Code : Tout sélectionner

<?xml version='1.0' encoding='utf-8'?>
<TAS>
  <NEW_TA>
    <ART_SALE>
      <ARTICLE>
        <szItemTaxGroupExternalID>0</szItemTaxGroupExternalID>
      </ARTICLE>
    </ART_SALE>
  </NEW_TA>
</TAS>
Merci d'avance pour le coup de main !
Modifié en dernier par GhostLine le lun. 12 juin 2017 17:13, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Effacer un node (XML)

#2

Message par orax »

Il faudrait mettre le lien vers l'UDF. Je suppose que c'est XML.au3 ( formerly XMLWrapperEx.au3 ) 1.1.1.13.
J'ai regardé le contenu de la fonction _XML_DeleteNode et je vois que cette fonction ne va pas modifier le fichier XML. Une fois le document XML modifié, il faut l'enregistrer. Il y a probablement une fonction pour faire ça.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Effacer un node (XML)

#3

Message par GhostLine »

Oy !

Effectivement, j'ai omis l'include (XML.au3 version 1.1.1.13).

La fonction pour sauvegarder est _XML_SaveToFile() , et je m'en sers déjà (avec succès) pour ajouter des valeurs manquantes à mes fichiers XML.
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Effacer un node (XML)

#4

Message par GhostLine »

Bon, en fait, je suis un imbécile :) je me suis perdu dans mes répertoires de sauvegarde :p Donc tout marche, je clôture :)
Répondre