Search This Blog

Thursday 28 November 2013

Read Data from xml using Dom in Python

Here is sample code for how we can use dom in python for extracting data from xml.

import xml.dom.minidom

document = """<root><firstname>Anil</firstname>
            <middlename>R.</middlename>
            <surname>Kesariya</surname></root>"""
         
dom = xml.dom.minidom.parseString(document)

def getText(nodelist):
    rc = []
    for node in nodelist:
        if node.nodeType == node.TEXT_NODE:
            rc.append(node.data)
    return ''.join(rc)

def handleTok(tokenlist):
    texts = ""
    for token in tokenlist:
        texts += " "+ getText(token.childNodes)
    return texts

first_name = dom.getElementsByTagName("firstname")
first_name = handleTok(first_name)

middle_name = dom.getElementsByTagName("middlename")
middle_name = handleTok(middle_name)

last_name = dom.getElementsByTagName("surname")
last_name = handleTok(last_name)

print "Name Detail :::",first_name + " " + middle_name + " " + last_name

Setup Aeroo Report Configuration Step by Step In ubuntu



Here is the link for Aeroo library installation and configuration of aeroo report in your system

Click Here 

List Date between Two Dates using Python



Here is sample code for listing the all dates for between two dates


    from dateutil import rrule
    from datetime import datetime

    def get_date_range(date_from, date_to):
   
        date_list = []
   
        for dd in rrule.rrule(rrule.DAILY,
                  dtstart=datetime.strptime(date_from, "%Y-%m-%d"),
                  until=datetime.strptime(date_to, "%Y-%m-%d")):
   
            date_list.append(datetime.strftime(dd,"%Y-%m-%d"))
    return date_list


    date_from = '2013-11-02'
    date_to = '2013-11-13'

    date_data = get_date_range(date_from, date_to)

    print "List Dates ::::::",date_data


O/P :
List Dates :::::: ['2013-11-02', '2013-11-03', '2013-11-04', '2013-11-05', '2013-11-06', '2013-11-07', '2013-11-08', '2013-11-09', '2013-11-10', '2013-11-11', '2013-11-12', '2013-11-13']