Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

extract Data from XML file 1

Status
Not open for further replies.

hogie503

Programmer
Jul 20, 2012
2
0
0
I would like help on the best way to extract the highlighted data from the XML file below this data will then be loaded in a Database any language is fine I am tryihg in C# or PHP, The info is in RED
Any help will be greatly appreciated.... Thanks


<?xml version="1.0" encoding="ISO-8859-1"?>
<Workstation Number="80033" CompType="0" Type="baseline" UserDef1="Skq34" UserDef2="89098" Userdef3="76" Comment="This is a test" >
<Hardware>
<Computer>
<Name>SPKCDC1A84</Name>
<Manufacturer>INTELR</Manufacturer>
<Model>ADRADCPI</Model>
<ServiceTag />
<BiosName>AT/AT Comp</BiosName>
</Computer>

<CPU>
<Installed>2</Installed>
<Vendor>Intel</Vendor>
<Speed>2400</Speed>
<Model>Awardacpi</Model>
<SerialNumber>000-949-0000</SerialNumber>
<CPUFamily>15</CPUFamily>
</CPU>

<Drive>
<Name>A:</Name>
<Description/>
<Capacity>0</Capacity>
<Free>0</Free>
<Type>Removable</Type>
</Drive>

<Drive>
<Name>C:</Name>
<Description/>
<Capacity>99999</Capacity>
<Free>8888888</Free>
<Type>Fixed</Type>
</Drive>

<Drive>
<Name>D:</Name>
<Description/>
<Capacity>55555555</Capacity>
<Free>4444444</Free>
<Type>Fixed</Type>
</Drive>

<Drive>
<Name>F:</Name>
<Description> DVD_2345</Description>
<Capacity>0</Capacity>
<Type>Removable</Type>
</Drive>

</Hardware>
</Workstation>
 
Here is an simple example how to do it in VBscript
workstation_parse.vbs
Code:
[COLOR=#804040][b]set[/b][/color] xml_doc [COLOR=#804040][b]=[/b][/color] [COLOR=#008080]CreateObject[/color][COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Microsoft.XMLDOM"[/color][COLOR=#804040][b])[/b][/color]

xml_doc[COLOR=#804040][b].[/b][/color][COLOR=#804040][b]load[/b][/color][COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"workstation.xml"[/color][COLOR=#804040][b])[/b][/color]

[COLOR=#0000ff]'parse Workstation attributes[/color]
[COLOR=#804040][b]set[/b][/color] node [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]selectSingleNode[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"/Workstation"[/color][COLOR=#804040][b])[/b][/color]

attr_id [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]"Number"[/color]
attr_val [COLOR=#804040][b]=[/b][/color] node[COLOR=#804040][b].[/b][/color]getAttribute[COLOR=#804040][b]([/b][/color]attr_id[COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Workstation "[/color] [COLOR=#804040][b]&[/b][/color] attr_id [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] attr_val[COLOR=#804040][b])[/b][/color] 

attr_id [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]"UserDef1"[/color]
attr_val [COLOR=#804040][b]=[/b][/color] node[COLOR=#804040][b].[/b][/color]getAttribute[COLOR=#804040][b]([/b][/color]attr_id[COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Workstation "[/color] [COLOR=#804040][b]&[/b][/color] attr_id [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] attr_val[COLOR=#804040][b])[/b][/color] 

attr_id [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]"UserDef2"[/color]
attr_val [COLOR=#804040][b]=[/b][/color] node[COLOR=#804040][b].[/b][/color]getAttribute[COLOR=#804040][b]([/b][/color]attr_id[COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Workstation "[/color] [COLOR=#804040][b]&[/b][/color] attr_id [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] attr_val[COLOR=#804040][b])[/b][/color] 

[COLOR=#0000ff]'parse Computer Name and Model[/color]
[COLOR=#804040][b]set[/b][/color] node [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]selectSingleNode[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"/Workstation/Hardware/Computer/Name"[/color][COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Computer Name"[/color] [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] node[COLOR=#804040][b].[/b][/color]Text[COLOR=#804040][b])[/b][/color]

[COLOR=#804040][b]set[/b][/color] node [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]selectSingleNode[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"/Workstation/Hardware/Computer/Model"[/color][COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Computer Model"[/color] [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] node[COLOR=#804040][b].[/b][/color]Text[COLOR=#804040][b])[/b][/color]

[COLOR=#0000ff]'parse CPU Speed and Model[/color]
[COLOR=#804040][b]set[/b][/color] node [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]selectSingleNode[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"/Workstation/Hardware/CPU/Speed"[/color][COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"CPU Speed"[/color] [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] node[COLOR=#804040][b].[/b][/color]Text[COLOR=#804040][b])[/b][/color]

[COLOR=#804040][b]set[/b][/color] node [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]selectSingleNode[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"/Workstation/Hardware/CPU/Model"[/color][COLOR=#804040][b])[/b][/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"CPU Model"[/color] [COLOR=#804040][b]&[/b][/color] [COLOR=#ff00ff]"= "[/color] [COLOR=#804040][b]&[/b][/color] node[COLOR=#804040][b].[/b][/color]Text[COLOR=#804040][b])[/b][/color]

[COLOR=#0000ff]'parse all drives[/color]
wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Drives:"[/color][COLOR=#804040][b])[/b][/color]

[COLOR=#804040][b]set[/b][/color] drives [COLOR=#804040][b]=[/b][/color] xml_doc[COLOR=#804040][b].[/b][/color]getElementsByTagName[COLOR=#804040][b]([/b][/color][COLOR=#ff00ff]"Drive"[/color][COLOR=#804040][b])[/b][/color]
[COLOR=#804040][b]for[/b][/color] [COLOR=#804040][b]each[/b][/color] drive [COLOR=#804040][b]in[/b][/color] drives
  [COLOR=#804040][b]for[/b][/color] [COLOR=#804040][b]each[/b][/color] drive_data [COLOR=#804040][b]in[/b][/color] drive[COLOR=#804040][b].[/b][/color]ChildNodes
    [COLOR=#804040][b]select[/b][/color] [COLOR=#804040][b]case[/b][/color] drive_data[COLOR=#804040][b].[/b][/color]NodeName
      [COLOR=#804040][b]case[/b][/color] [COLOR=#ff00ff]"Name"[/color]
        drive_name [COLOR=#804040][b]=[/b][/color] drive_data[COLOR=#804040][b].[/b][/color]Text
      [COLOR=#804040][b]case[/b][/color] [COLOR=#ff00ff]"Description"[/color]
        drive_description [COLOR=#804040][b]=[/b][/color] drive_data[COLOR=#804040][b].[/b][/color]Text
      [COLOR=#804040][b]case[/b][/color] [COLOR=#ff00ff]"Capacity"[/color]
        drive_capacity [COLOR=#804040][b]=[/b][/color] drive_data[COLOR=#804040][b].[/b][/color]Text
      [COLOR=#804040][b]case[/b][/color] [COLOR=#ff00ff]"Free"[/color]
        drive_free [COLOR=#804040][b]=[/b][/color] drive_data[COLOR=#804040][b].[/b][/color]Text
    [COLOR=#804040][b]end[/b][/color] [COLOR=#804040][b]select[/b][/color]
  [COLOR=#804040][b]next[/b][/color]
 [COLOR=#0000ff] 'print drive data[/color]
  [COLOR=#804040][b]if[/b][/color] drive_name [COLOR=#804040][b]<>[/b][/color] [COLOR=#ff00ff]"A:"[/color] [COLOR=#804040][b]then[/b][/color]
    [COLOR=#804040][b]if[/b][/color] drive_Description  [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]""[/color] [COLOR=#804040][b]then[/b][/color]
      drive_info [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]"  Name "[/color] [COLOR=#804040][b]&[/b][/color] drive_name [COLOR=#804040][b]& _[/b][/color]
                   [COLOR=#ff00ff]", Capacity: "[/color] [COLOR=#804040][b]&[/b][/color] drive_capacity [COLOR=#804040][b]& _[/b][/color]
                   [COLOR=#ff00ff]", Free: "[/color] [COLOR=#804040][b]&[/b][/color] drive_free
    [COLOR=#804040][b]else[/b][/color]
      drive_info [COLOR=#804040][b]=[/b][/color] [COLOR=#ff00ff]"  Name "[/color] [COLOR=#804040][b]&[/b][/color] drive_name [COLOR=#804040][b]& _[/b][/color]
                   [COLOR=#ff00ff]", Description: "[/color] [COLOR=#804040][b]&[/b][/color] drive_description
    [COLOR=#804040][b]end[/b][/color] [COLOR=#804040][b]if[/b][/color]
    wscript[COLOR=#804040][b].[/b][/color]echo[COLOR=#804040][b]([/b][/color]drive_info[COLOR=#804040][b])[/b][/color]
  [COLOR=#804040][b]end[/b][/color] [COLOR=#804040][b]if[/b][/color]  
[COLOR=#804040][b]next[/b][/color]

[COLOR=#0000ff]'at end release XMLDOM object from memory[/color]
[COLOR=#804040][b]set[/b][/color] xml_doc [COLOR=#804040][b]=[/b][/color] [COLOR=#804040][b]nothing[/b][/color]
Output:
Code:
C:\_mikrom\Work>cscript /NoLogo workstation_parse.vbs
Workstation Number= 80033
Workstation UserDef1= Skq34
Workstation UserDef2= 89098
Computer Name= SPKCDC1A84
Computer Model= ADRADCPI
CPU Speed= 2400
CPU Model= Awardacpi
Drives:
  Name C:, Capacity: 99999, Free: 8888888
  Name D:, Capacity: 55555555, Free: 4444444
  Name F:, Description: DVD_2345
 
Mikrom,

Thanks you so much for the example thats a GREAT example, just what I needed!!!!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top