A
amjadcsu
I am a newbie in python
I am trying to parse a xml file and write its content in a txt file.
The txt contains null elements. Any reason what iam doing wrong here
Here is the code that i wrote
import sys,os
import xml.sax
import xml.sax.handler
from xml.sax.handler import ContentHandler
from xml.sax import make_parser
class gmondxmlparse (ContentHandler):
def __init__(self,searchTerm):
self.searchTerm=searchTerm;
def startElement(self,name,attrs):
if name=="HOST":
self.hostname=attrs.get('NAME',"")
self.IP=attrs.get('IP',"")
elif name=="METRIC":
self.metricname=attrs.get('NAME', "")
self.metricvalue=attrs.get('VAL',"")
self.metrictype=attrs.get('TYPE',"")
self.metricunit=attrs.get('UNITS',"")
return
def endElement(self,name):
if name=="HOST" and self.searchTerm==self.hostname:
try:
fh=open('/root/yhpc-2.0/ganglia.txt' ,'w')
except:
print "File /root/yhpc-2.0/ganglia.txt can not be
open"
sys.exit(1)
fh.write("This is a test for xml parsing with python with
chris and amjad \n")
fh.write("the host name is", self.hostname, "\n")
fh.write("the ip address is", self.IP, "\n")
fh.close()
searchTerm="HOST"
parser=make_parser()
curHandler=gmondxmlparse(searchTerm)
parser.setContentHandler(curHandler)
parser.parse(open("/root/yhpc-2.0/gmond.xml"))
Here is the sample of xml file
Here is the xmk file called gmond.xml
<HOST NAME="192.168.10.163" IP="192.168.10.163" REPORTED="1193689455"
TN="0" TMAX="20" DMAX="0" LOCATION="unspecified"
GMOND_STARTED="1193170061">
<METRIC NAME="cpu_num" VAL="2" TYPE="uint16" UNITS="CPUs" TN="994"
TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/>
I am trying to parse a xml file and write its content in a txt file.
The txt contains null elements. Any reason what iam doing wrong here
Here is the code that i wrote
import sys,os
import xml.sax
import xml.sax.handler
from xml.sax.handler import ContentHandler
from xml.sax import make_parser
class gmondxmlparse (ContentHandler):
def __init__(self,searchTerm):
self.searchTerm=searchTerm;
def startElement(self,name,attrs):
if name=="HOST":
self.hostname=attrs.get('NAME',"")
self.IP=attrs.get('IP',"")
elif name=="METRIC":
self.metricname=attrs.get('NAME', "")
self.metricvalue=attrs.get('VAL',"")
self.metrictype=attrs.get('TYPE',"")
self.metricunit=attrs.get('UNITS',"")
return
def endElement(self,name):
if name=="HOST" and self.searchTerm==self.hostname:
try:
fh=open('/root/yhpc-2.0/ganglia.txt' ,'w')
except:
print "File /root/yhpc-2.0/ganglia.txt can not be
open"
sys.exit(1)
fh.write("This is a test for xml parsing with python with
chris and amjad \n")
fh.write("the host name is", self.hostname, "\n")
fh.write("the ip address is", self.IP, "\n")
fh.close()
searchTerm="HOST"
parser=make_parser()
curHandler=gmondxmlparse(searchTerm)
parser.setContentHandler(curHandler)
parser.parse(open("/root/yhpc-2.0/gmond.xml"))
Here is the sample of xml file
Here is the xmk file called gmond.xml
<HOST NAME="192.168.10.163" IP="192.168.10.163" REPORTED="1193689455"
TN="0" TMAX="20" DMAX="0" LOCATION="unspecified"
GMOND_STARTED="1193170061">
<METRIC NAME="cpu_num" VAL="2" TYPE="uint16" UNITS="CPUs" TN="994"
TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/>