"ADODB.Recordset" Zugriff auf XML-Datei.

  • Hallo, ich hab ein Problem mit XML.

    Ich habe eine XML- Datei (Drucker.xml) in dieser stehen informationen zu Druckern...

    Nun versuche ich mit einem ADODB.Recordset Object darauf zu zugreifen und die Werte auszulesen, dafür wolle ich eine bereits in vbs vorhandene Funktion in AutoIT lauffähig machen, leider vergeblich.... :(

    Hier einmal die vbs Funktion:

    hier die gleiche Funktion, nur auf AutoIT angepasst.

    [autoit]


    $adLockBatchOptimistic = 4
    $adOpenStatic = 3
    $strXML = "Drucker.xml"
    $strfloor = "2. Floor"
    $strlocation = "NBG"

    [/autoit][autoit][/autoit][autoit]

    $objRS = ObjCreate("ADODB.Recordset")
    $objRS.Open ($strXML,"",$adOpenStatic,$adLockBatchOptimistic,"&H100")

    [/autoit][autoit][/autoit][autoit]

    $objRS.Filter = "Location = '"&$strlocation&"' And Floor = '"&$strfloor&"'"

    [/autoit][autoit][/autoit][autoit]

    Do
    MsgBox(0,"",$objRS("Name")&"|"&$objRS("Comment")&"|"&$objRS("Description")&"|"&$objRS("Location")&"|"&$objRS("Floor")&"|"&$objRS("Server"))
    $objRS.MoveNext

    [/autoit][autoit][/autoit][autoit]

    Until $objRS.EOF

    [/autoit]

    Wenn ich das vbs script ausführe liest dies mir alle Datensätze richtig aus, bei dem AutoIT - Script bringt er mir einen Fehler:

    ==> The requested action with this object has failed.:
    $objRS.Open ($strXML,"",$adOpenStatic,$adLockBatchOptimistic,"&H100")
    $objRS.Open ($strXML,"",$adOpenStatic,$adLockBatchOptimistic,"&H100")^ ERROR

    Leider kann ich mir den Fehler nicht erklären.
    Kann mir jemand weiterhelfen?

    • Offizieller Beitrag

    Hi,

    vielleicht hilft dir das

    [autoit]

    $adLockBatchOptimistic = 4
    $adOpenStatic = 3
    $strXML = "drucker.xml"
    $strfloor = "2. Floor"
    $strlocation = "NBG"

    [/autoit][autoit][/autoit][autoit]

    $objRS = ObjCreate("ADOR.Recordset")
    If Not IsObj($objRS) Then ConsoleWrite("No Obj" & @CRLF)
    $objRS.Open($strXML);, "", $adOpenStatic, $adLockBatchOptimistic, 0x100)

    [/autoit][autoit][/autoit][autoit]

    Do
    ConsoleWrite($objRS.Fields("Name" ).Value & @CRLF)
    $objRS.MoveNext()
    Until $objRS.EOF()

    [/autoit][autoit][/autoit][autoit]

    ;~ ConsoleWrite($objRS("Name") & "|" & $objRS("Comment") & "|" & $objRS("Description") & "|" & $objRS("Location") & "|" & $objRS("Floor") & "|" & $objRS("Server") & @CRLF)

    [/autoit][autoit][/autoit][autoit][/autoit]

    P.S.: Du könntest es auch mit der XML UDF machen, oder halt mit Regexp :)
    Mega