Parsing XML - Newbie help
rh0dium
sklass at pointcircle.com
Sat May 21 14:53:34 EDT 2005
Hi all,
I am relatively new to python and certainly new to XML parsing. Can
some show me how to get the product text out of this? Really I want to
know this has 2 processors and the are AMD Opteron(tm) Processor 250
I have gotten this far...
class HWParser:
def __init__(self):
if os.path.isfile(LSHW):
lshw=Exec.Exec(LSHW)
lshw.execute('-xml')
else:
print "lshw does not exist", LSWH
return "Unknown"
self.data = lshw.read()
self.error = lshw.error()
self.exit = lshw.poll()
if self.error:
print "Error Exist", self.error
return
else:
self.xml = minidom.parseString(self.data)
self.xml.normalize()
def p (self):
print self.xml.toxml()
If anyone can help me out that would be great!
---
<?xml version="1.0" standalone="yes" ?>
<!-- generated by lshw-B.02.03 -->
<!-- GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-42) -->
<node id="cpu:0" claimed="true" class="processor"
handle="DMI:0005">
<description>CPU</description>
<product>AMD Opteron(tm) Processor 250</product>
<vendor>Advanced Micro Devices [AMD]</vendor>
<physid>5</physid>
<businfo>cpu at 0</businfo>
<version>15.5.10</version>
<slot>CPU0</slot>
<size units="Hz">2400000000</size>
<capacity units="Hz">3000000000</capacity>
<width units="bits">64</width>
<clock units="Hz">1600000000</clock>
<capabilities>
<capability id="fpu" >mathematical co-processor</capability>
<capability id="fpu_exception" >FPU exceptions
reporting</capability>
<capability id="wp" />
<capability id="vme" >virtual mode extensions</capability>
<capability id="de" >debugging extensions</capability>
<capability id="pse" >page size extensions</capability>
<capability id="tsc" >time stamp counter</capability>
<capability id="msr" >model-specific registers</capability>
<capability id="pae" >4GB+ memory addressing (Physical
Address Extension)</capability>
<capability id="mce" >machine check exceptions</capability>
<capability id="cx8" >compare and exchange
8-byte</capability>
<capability id="apic" >on-chip advanced programmable
interrupt controller (APIC)</capability>
<capability id="sep" >fast system calls</capability>
<capability id="mtrr" >memory type range
registers</capability>
<capability id="pge" >page global enable</capability>
<capability id="mca" >machine check architecture</capability>
<capability id="cmov" >conditional move
instruction</capability>
<capability id="pat" >page attribute table</capability>
<capability id="pse36" >36-bit page size
extensions</capability>
<capability id="clflush" />
<capability id="mmx" >multimedia extensions
(MMX)</capability>
<capability id="fxsr" >fast floating point
save/restore</capability>
<capability id="sse" >streaming SIMD extensions
(SSE)</capability>
<capability id="sse2" >streaming SIMD extensions
(SSE2)</capability>
<capability id="syscall" >fast system calls</capability>
<capability id="nx" >no-execute bit (NX)</capability>
<capability id="mmxext" >multimedia extensions
(MMXExt)</capability>
<capability id="x86-64" >64bits extensions
(x86-64)</capability>
<capability id="3dnowext" >multimedia extensions
(3DNow!Ext)</capability>
<capability id="3dnow" >multimedia extensions
(3DNow!)</capability>
</capabilities>
</node>
<node id="cpu:1" claimed="true" class="processor"
handle="DMI:0006">
<description>CPU</description>
<product>AMD Opteron(tm) Processor 250</product>
<vendor>Advanced Micro Devices [AMD]</vendor>
<physid>3</physid>
<businfo>cpu at 1</businfo>
<version>15.5.10</version>
<slot>CPU1</slot>
<size units="Hz">2400000000</size>
<capacity units="Hz">3000000000</capacity>
<width units="bits">64</width>
<clock units="Hz">1600000000</clock>
<capabilities>
<capability id="fpu" >mathematical co-processor</capability>
<capability id="fpu_exception" >FPU exceptions
reporting</capability>
<capability id="wp" />
<capability id="vme" >virtual mode extensions</capability>
<capability id="de" >debugging extensions</capability>
<capability id="pse" >page size extensions</capability>
<capability id="tsc" >time stamp counter</capability>
<capability id="msr" >model-specific registers</capability>
<capability id="pae" >4GB+ memory addressing (Physical
Address Extension)</capability>
<capability id="mce" >machine check exceptions</capability>
<capability id="cx8" >compare and exchange
8-byte</capability>
<capability id="apic" >on-chip advanced programmable
interrupt controller (APIC)</capability>
<capability id="sep" >fast system calls</capability>
<capability id="mtrr" >memory type range
registers</capability>
<capability id="pge" >page global enable</capability>
<capability id="mca" >machine check architecture</capability>
<capability id="cmov" >conditional move
instruction</capability>
<capability id="pat" >page attribute table</capability>
<capability id="pse36" >36-bit page size
extensions</capability>
<capability id="clflush" />
<capability id="mmx" >multimedia extensions
(MMX)</capability>
<capability id="fxsr" >fast floating point
save/restore</capability>
<capability id="sse" >streaming SIMD extensions
(SSE)</capability>
<capability id="sse2" >streaming SIMD extensions
(SSE2)</capability>
<capability id="syscall" >fast system calls</capability>
<capability id="nx" >no-execute bit (NX)</capability>
<capability id="mmxext" >multimedia extensions
(MMXExt)</capability>
<capability id="x86-64" >64bits extensions
(x86-64)</capability>
<capability id="3dnowext" >multimedia extensions
(3DNow!Ext)</capability>
<capability id="3dnow" >multimedia extensions
(3DNow!)</capability>
</capabilities>
</node>
More information about the Python-list
mailing list