Skip to content Skip to sidebar Skip to footer

Logical Issue In Generating Html Code

I am trying generate HTML code using the code below(pastie link),expected output is shown below ,am getting an output where the CR value is getting added twice and also the http li

Solution 1:

Here's that input I promised.

defCRlistToTable(CRlist):
    """ Create HTML table from CRlist data """
    CRstrings = ['<table cellspacing="1" cellpadding="1" border="1">']

    # create table's header row from the first row of CRlist
    BGCOLOR = '#67B0F9'# column header cells background color
    cols = CRlist[0]  # column names given in first row
    CRstrings += ['  <tr>', '\n'.join(
                  '    <th bgcolor="{}" scope="col">{}</th>'.format(BGCOLOR, col_name)
                     for col_name in cols),
                  '  </tr>']

    # create a template for remaining non-header table rows
    TR_TEMPLATE = ['  <tr>',
                   '    <td>',
                   '      {}',  # for dynamically generated CR links'    </td>', '\n'.join(
                  ['    <td>{}</td>'] * (len(cols)-1)), # one per remaining cols'  </tr>']
    TR_TEMPLATE = '\n'.join(TR_TEMPLATE) # convert to a string# apply the row template created to remaining CRlist rows
    CR_LINK_TEMPLATE = '<a href=http://data/{0}>{0}</a>'for row in CRlist[1:]:
        if','notin row[0]:  # no comma-delimited items in first column?
            links = CR_LINK_TEMPLATE.format(row[0])
        else:
            CRs = row[0].replace(',', ' ').split()
            links = ',\n      '.join(CR_LINK_TEMPLATE.format(cr) for cr in CRs)
        row[0] = links
        CRstrings += [TR_TEMPLATE.format(*row)]

    CRstrings += ["</table>"]

    # return string list merged to a single long newline-delimited stringreturn'\n'.join(CRstrings) + '\n'withopen('cr_fixes_tabbed.xml') as file:
    xmldata = file.read()  # read entire file into memory

FIXES_START_TAG, FIXES_END_TAG = '<Fixes>, </Fixes>'.replace(',', ' ').split()
# embedded fixes info starts right after the tag itself within the xml data
xmlFixesStart = xmldata.find(FIXES_START_TAG) + len(FIXES_START_TAG)
xmlFixesEnd = xmldata.find(FIXES_END_TAG)

# extract portion of file data within the FIXES tags into a list of lines
info = xmldata[xmlFixesStart:xmlFixesEnd].strip().splitlines()

# split non-blank lines of tab-delimited data into list of rows of column data
CRlist = [line.split('\t') for line in info if line] # skips blank lines

crInfo = CRlistToTable(CRlist) # convert list into html tableprint crInfo

Output:

<tablecellspacing="1"cellpadding="1"border="1"><tr><thbgcolor="#67B0F9"scope="col">CR</th><thbgcolor="#67B0F9"scope="col">FA</th><thbgcolor="#67B0F9"scope="col">CL</th><thbgcolor="#67B0F9"scope="col">Title</th></tr><tr><td><ahref=http://data/409452>409452</a></td><td>WLAN</td><td>656885</td><td>Age out RSSI values from buffer</td></tr><tr><td><ahref=http://data/409452>409452</a>,
      <ahref=http://data/12345>12345</a></td><td></td><td></td><td>To Record HAL and SLM FW Event Logging</td></tr></table>

Browser view:

html output viewed in browser

Post a Comment for "Logical Issue In Generating Html Code"