[R] Probleme avec _XMLDomWrapper_.au3
Posté : sam. 01 févr. 2014 21:19
Bonjour amis autoitiens,
Voici plusieurs jours que je bataille avec un problème rencontré lorsque je souhaite supprimer un éléments d'un Fichier XML.
J'utilise la fonction externe _XMLDomWrapper_.au3 pour gérer un fichier XML.
Mon code fonctionne très bien semble t-il et la pluspart des suppressions se passent très bien également,
Cependant des fois, sans raison, un élément ne peut être supprimé car un message d'erreur s'affiche. (ci-dessous)
Pour info, l'élément est bien supprimé, donc le script supprime bien l'élément,
Message d'erreur :
Line 1185 (Fil...)
Func _XMLGetChildNodes($strPath)
Func _XMLGetChildNodes($strPath)^ERROR
Error : Array variable has incorrect number of subscripts or subscript dimension range exceeded.
Mon fichier XML :
C'est : <C0103Keldervoircom> que je souhaite supprimer, ainsi que ces éléments enfants.
Mon ptit bout de code :
_XMLDeleteNode sert à supprimer. la suite étant le chemin pour parvenir à l'élément à supprimer.
Le code de la fonction _XMLDomWrapper_.au3 :
Je ne sais pas si qq pourra m'aider ou au moins m'éguiller.
Mais pour ma part, je bloque complet
Merci par avance,
Voici plusieurs jours que je bataille avec un problème rencontré lorsque je souhaite supprimer un éléments d'un Fichier XML.
J'utilise la fonction externe _XMLDomWrapper_.au3 pour gérer un fichier XML.
Mon code fonctionne très bien semble t-il et la pluspart des suppressions se passent très bien également,
Cependant des fois, sans raison, un élément ne peut être supprimé car un message d'erreur s'affiche. (ci-dessous)
Pour info, l'élément est bien supprimé, donc le script supprime bien l'élément,
Message d'erreur :
Line 1185 (Fil...)
Func _XMLGetChildNodes($strPath)
Func _XMLGetChildNodes($strPath)^ERROR
Error : Array variable has incorrect number of subscripts or subscript dimension range exceeded.
Mon fichier XML :
Code : Tout sélectionner
<Secteur30>
<C0103Keldervoircom> <Nom>En att 01.03 B Kelder(voir com)</Nom>
<Type>B</Type>
<Cree>2014/01/29 10:28:41</Cree>
<Att> </Att>
</C0103Keldervoircom>
</Secteur30>
Mon ptit bout de code :
Code : Tout sélectionner
_XMLDeleteNode("/Suivi/Secteur" & $TEMP & "/" & _XMLGetChildNodes("/Suivi/Secteur" & $TEMP)[$i]) ; Suppression du dossier
Le code de la fonction _XMLDomWrapper_.au3 :
Code : Tout sélectionner
; #FUNCTION# ===================================================================
; Name ..........: _XMLGetChildNodes
; Description ...: Selects XML child Node(s) of an element based on XPath input from root node.
; Syntax.........: _XMLGetChildNodes($strXPath)
; Parameters ....: $strXPath - The xml tree path from root node (root/child/child..)
; Return values .: Success - An array of Nodes, count in [0] element.
; Failure - -1 and @error set to 1.
; Author ........: Stephen Podhajecki <gehossafats@netmdc.com>
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......; [yes/no]
; ==============================================================================
Func _XMLGetChildNodes($strXPath)
If Not IsObj($objDoc) Then
_XMLError("No object passed to function _XMLGetChildNodes")
Return SetError(1, 20, -1)
EndIf
Local $objNodeList, $arrResponse[1], $xmlerr
$objNodeList = $objDoc.selectSingleNode($strXPath)
If Not IsObj($objNodeList) Then
_XMLError(@LF & "No Matching Nodes found")
$arrResponse[0] = 0
Return SetError(1, 0, -1)
EndIf
If $objNodeList.hasChildNodes() Then
For $objChild In $objNodeList.childNodes()
If $objChild.nodeType() = $NODE_ELEMENT Then
_DebugWrite($objChild.NamespaceURI & "::" & $objChild.baseName & @LF)
_XMLArrayAdd($arrResponse, $objChild.baseName)
EndIf
Next
$arrResponse[0] = UBound($arrResponse) - 1
Return $arrResponse
EndIf
$arrResponse[0] = 0
$xmlerr = @LF & "No Child Nodes found"
_XMLError("Error Selecting Node(s): " & $strXPath & $xmlerr)
Return SetError(1, 0, -1)
EndFunc ;==>_XMLGetChildNodes
Mais pour ma part, je bloque complet
Merci par avance,