Hallo zusammen,
hat sich jemand schon mit dem _XMLDomWrapper.au3 auseinandergesetzt?
Ich verstehe die Funktion _XMLCreateChildNode nicht.
Ich will in einer For Schleife die Bestellnummern in ein XML Child schreiben lassen.
Die Ubound For Schleife gibt mir aber erst den kompletten Arrayblock und dann zeilenweise weniger werdend die Nummern wieder.
Liegt das an der Array FOr Schleife, oder an der _XMLCreateChildNode Funktion?
Spoiler anzeigen
Spoiler anzeigen
AutoIt
;===============================================================================
; Function Name: _XMLCreateChildNode
; Description: Create a child node under the specified XPath Node.
; Parameter(s): $path Path from root
; $node Node to add
; Syntax: _XMLCreateChildNode($path,$node)
; Author(s): Stephen Podhajecki <gehossafats@netmdc.com>
; Return Value(s) on error set error to 1 and returns -1
;===============================================================================
Func _XMLCreateChildNode($strXPath, $strNode, $strData = "", $strNameSpc = "")
If not IsObj($objDoc) then
_XMLError("No object passed to function _XMLCreateChildNode")
Return SetError(1,16,-1)
EndIf
Local $objParent, $objChild, $objNodeList
$objNodeList = $objDoc.selectNodes ($strXPath)
If IsObj($objNodeList) And $objNodeList.length > 0 Then
For $objParent In $objNodeList
If Not ($objParent.hasChildNodes ()) Then
_AddFormat($objDoc, $objParent)
EndIf
If $strNameSpc = "" Then
If Not ($objParent.namespaceURI = 0 Or $objParent.namespaceURI = "") Then $strNameSpc = $objParent.namespaceURI
EndIf
;ConsoleWrite("$strNameSpc=" & $strNameSpc & @LF)
$objChild = $objDoc.createNode ($NODE_ELEMENT, $strNode, $strNameSpc)
If $strData <> "" Then $objChild.text = $strData
$objParent.appendChild ($objChild)
_AddFormat($objDoc, $objParent)
Next
If ($bXMLAUTOSAVE = True) Then $objDoc.save ($strFile)
$objParent = ""
$objChild = ""
Return 1
EndIf
_XMLError("Error creating child node: " & $strNode & @CRLF & $strXPath & " does not exist." & @CRLF)
Return SetError(1,0,-1)
EndFunc ;==>_XMLCreateChildNode
Alles anzeigen
Das kommt dabei raus:
Spoiler anzeigen
XML
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<FormatInfo>
<DecimalSeperator>.</DecimalSeperator>
<DefaultCurrency>EUR</DefaultCurrency>
<OrderTypeText>MeinFormat</OrderTypeText>
<TotalGrossAmountContainsShippingCosts>true</TotalGrossAmountContainsShippingCosts>
</FormatInfo>
<Order>
<OrderNr>4365199(Bestellnr. des Shops)</OrderNr>
<OrderNr>4349924(Bestellnr. des Shops)</OrderNr>
<OrderNr>4357116(Bestellnr. des Shops)</OrderNr>
<OrderNr>4364709(Bestellnr. des Shops)</OrderNr>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4349924(Bestellnr. des Shops)</OrderNr>
<OrderNr>4357116(Bestellnr. des Shops)</OrderNr>
<OrderNr>4364709(Bestellnr. des Shops)</OrderNr>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4357116(Bestellnr. des Shops)</OrderNr>
<OrderNr>4364709(Bestellnr. des Shops)</OrderNr>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4364709(Bestellnr. des Shops)</OrderNr>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
</Orders>
Alles anzeigen
SO soll es aussehen:
Spoiler anzeigen
XML
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<FormatInfo>
<DecimalSeperator>.</DecimalSeperator>
<DefaultCurrency>EUR</DefaultCurrency>
<OrderTypeText>MeinFormat</OrderTypeText>
<TotalGrossAmountContainsShippingCosts>true</TotalGrossAmountContainsShippingCosts>
</FormatInfo>
<Order>
<OrderNr>4365199(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4349924(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4357116(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4364709(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4353960(Bestellnr. des Shops)</OrderNr>
</Order>
<Order>
<OrderNr>4363533(Bestellnr. des Shops)</OrderNr>
</Order>
</Orders>
Alles anzeigen
Liegt das an der FOR-Ubound Schleife?
Danke für eure Hilfe.
VG
horphi