Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

XML file uitlezen met VBS

Pagina: 1
Acties:

  • justys7
  • Registratie: April 2002
  • Laatst online: 26-04 12:06
Momenteel probeer ik een XML file uit te lezen met een VB script. De XML file ziet er als volgt uit:

- <Discovery Version="2.0">
- <!-- Found module hpdisc_plugin_storage.dll
-->
- <ServerInformation>
- <StorageControllers>
- <StorageController num="0">
<Type>SMARTARRAY</Type>
<LocationType>Internal</LocationType>
<ControllerOrder />
<PCIDeviceID>3234103C</PCIDeviceID>
<CurrentControllerFirmware>4.12</CurrentControllerFirmware>
<BackupControllerFirmware>4.12</BackupControllerFirmware>
<ExternalEnclosures />
- <LogicalDrives>
<NumberOfDrives>1</NumberOfDrives>
- <LogicalDrive>
<DeviceName>\\.\PhysicalDrive0</DeviceName>
<Size>69973 MB</Size>
<FaultTolerance>RAID 1</FaultTolerance>
- <PhysicalDriveMap>
<PD num="0:1:0" />
<PD num="0:2:0" />
</PhysicalDriveMap>
- <SparePhysicalDriveMap>
<PD num="0:3:0" />
</SparePhysicalDriveMap>
<DriveStatus>0</DriveStatus>
</LogicalDrive>
</LogicalDrives>
- <PhysicalDrives>
<NumberOfDrives>3</NumberOfDrives>
- <PhysicalDisk value="0:0:1">
<Size>70007 MB</Size>
<DriveModel>HP DG072BABCE</DriveModel>
<SerialNumber>BSA5P8400PEN****</SerialNumber>
<FirmwareRevision>HPD5</FirmwareRevision>
</PhysicalDisk>
- <PhysicalDisk value="0:0:2">
<Size>70007 MB</Size>
<DriveModel>HP DG072BABCE</DriveModel>
<SerialNumber>BSA5P8400PEM0816</SerialNumber>
<FirmwareRevision>HPD5</FirmwareRevision>
</PhysicalDisk>
- <PhysicalDisk value="0:0:3">
<Size>70007 MB</Size>
<DriveModel>HP DG072BABCE</DriveModel>
<SerialNumber>BSA5P8400NHV0816</SerialNumber>
<FirmwareRevision>HPD5</FirmwareRevision>
</PhysicalDisk>
</PhysicalDrives>
</StorageController>
</StorageControllers>
</ServerInformation>
</Discovery>


Ik kan bv het serialnummer (<SerialNumber>BSA5P8400PEM****</SerialNumber> ) gewoon uitlezen, dit doe ik met de volgende code:

Set colsn = xmlDoc.selectNodes( xml_file )
For Each objsn in colsn
strsn = objsn.text
Next


Wat ik maar niet voor elkaar krijg is het uitlezen van iets tussen "" bijvoorbeeld het PD num van onderstaande:

- <SparePhysicalDriveMap>
<PD num="0:3:0" />
</SparePhysicalDriveMap>

Wie weet hoe ik dat kan uitlezen, want ik moet nou net dat stukje hebben?

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 14-11 22:24
Dat zal een attribuut zijn van het desbetreffende element. Dus moet je het element opzoeken wat je hebben wil en daar de attributen van uit lezen.

voorbeeldje:

Visual Basic 6:
1
2
3
4
5
6
7
8
Set colsn = xmlDoc.selectNodes( xml_file )
For Each objsn in colsn
  if (objsn.Name == "wat je zoek") then
    for each objAttr in objSn.attributes
      strsn = objattr.text
    next
    strsn = objsn.text
Next


Niet getest!

[ Voor 48% gewijzigd door urk_forever op 07-07-2008 16:46 ]

Hail to the king baby!


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Een andere oplossing is het gebruik van xpath.
code:
1
//SparePhysicalDriveMap/PD/@num


Het apestraatje geeft aan dat het om een attribute gaat (ipv een element).
Als het resultaat 'nothing' is, dan kan het xpath niet in het xml document worden terug gevonden.

If it isn't broken, fix it until it is..


  • justys7
  • Registratie: April 2002
  • Laatst online: 26-04 12:06
Niemand_Anders schreef op maandag 07 juli 2008 @ 16:54:
Een andere oplossing is het gebruik van xpath.
code:
1
//SparePhysicalDriveMap/PD/@num


Het apestraatje geeft aan dat het om een attribute gaat (ipv een element).
Als het resultaat 'nothing' is, dan kan het xpath niet in het xml document worden terug gevonden.
Deze opties werkt perfect !!!! :) :) :)

Bedankt !!