Hallo, ich hab ein Problem mit XML.
Ich habe eine XML- Datei (Drucker.xml) in dieser stehen informationen zu Druckern...
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='Name' rs:number='1' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Comment' rs:number='2' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Description' rs:number='3' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Location' rs:number='4' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Floor' rs:number='5' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Server' rs:number='6' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<rs:insert>
<z:row Name='Drucker1' Comment='NBG, 2. Floor, south side, multifunction' Description='A4 S/W' Location='NBG' Floor='2. Floor' Server='XXXXXXXX'/>
<z:row Name='Drucker2' Comment='NBG, 2. Floor, south side, multifunction' Description='A4 Color' Location='NBG' Floor='2. Floor' Server='XXXXXXXX'/>
</rs:insert>
</rs:data>
</xml>
Alles anzeigen
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:
Const adLockBatchOptimistic = 4
Const adOpenStatic = 3
strXML = "Drucker.xml"
strfloor = "2. Floor"
strlocation = "NBG"
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open strXML, ,adOpenStatic, adLockBatchOptimistic, &H100
objRS.Filter = "Location = '"&strlocation&"' And Floor = '"&strfloor&"'"
Do Until objRS.EOF
WScript.Echo objRS("Name"), objRS("Comment"), objRS("Description"), objRS("Location"), objRS("Floor"), objRS("Server")
objRS.MoveNext
Loop
Alles anzeigen
hier die gleiche Funktion, nur auf AutoIT angepasst.
[autoit]
$adLockBatchOptimistic = 4
$adOpenStatic = 3
$strXML = "Drucker.xml"
$strfloor = "2. Floor"
$strlocation = "NBG"
$objRS = ObjCreate("ADODB.Recordset")
$objRS.Open ($strXML,"",$adOpenStatic,$adLockBatchOptimistic,"&H100")
$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
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?