snake_eater
так то это сарказм был. зачем предлагать веб фрейморк вообще - если он не решает конкретно задачи парсинга и вывода.парси стандартной либой xml - выводи принтом - профит.
Да спасибо, разобрался, но в любом случае использовать шаблонизатор с вебфреймворком куда лучше, чем то что делаю я) Сейчас на принтах доделаю все что хочу, а потом буду переписывать более человечно, чтоб видя код из глаз кровь не шла

В итоге получилось нечто ужасное, аж самому страшно…
XML_FILE = 'xmlfile.xml'
tree = ET.parse(XML_FILE)
root = tree.getroot()
tag = []
text = []
start = 0
end = 7
count_start_ping = 0
count_end_ping = 1
regular_word=re.compile("\d*\.\d*")
for_ping = []
for elem in root.getiterator():
if elem.tag == "TreeRoot":
continue
tag.append(elem.tag)
text.append(elem.text)
print '''<table border="2px" width="100%">
<tr>
<th>name</th>
<th>id</th>
<th>ip</th>
<th>hostname</th>
<th>description</th>
<th>templateswitch</th>
<th>icmp</th>
</tr>
'''
for x in tag:
if x.startswith('Sw'):
print '<tr>'
elem = root.find(str(x))
print '<td rowspan="2"><a href="/cgi-bin/Modules/mySnmp.py?name={}">'.format(elem.tag), elem.tag, '</a></td>'
elif x.endswith('icmp'):
print '</tr>'
print '<tr>'
for y in text[start:end]:
if y == '\n ':
start += 1
end += 1
continue
elif regular_word.findall(y):
for_ping.append("".join(y))
elif y == "fail":
host = for_ping[count_start_ping:count_end_ping]
print '<td>'
for x in host:
response = subprocess.call("ping -c 1 -n -W 1 %s" % x,
shell=True,
stdout=open('/dev/null', 'w'),
stderr=subprocess.STDOUT)
if response == 0:
print 'active'
else:
print 'inactive'
print '</td>'
count_start_ping+=1
count_end_ping+=1
start += 1
end += 1
continue
print '<td>', y, '</td>'
start += 1
end += 1
print '</tr>'
print '</table>'