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