Найти - Пользователи
Полная версия: Помогите распарсить xml в табличку
Начало » Python для новичков » Помогите распарсить xml в табличку
1 2
snake_eater
да кчто bootle и jinja надо django сразу. без него никак
fehu
4kpt_III
id в таблице работает как ссылка, которая должна ссылаться на функцию-отображение, которая должна выполнять необходимые операции (сейчас там просто заглушка).
Это гениально, спасибо. Буду курить документацию.
snake_eater
да кчто bootle и jinja надо django сразу. без него никак
Думаю, можно и без него обойтись, только как обычно получается тот еще велосипед
4kpt_III
snake_eater

Без джанги живу и отлично. Еще знаю кучу людей, которые живут и здравствуют. А тут Вы такой, на белом коне, спаситель. Ну расскажите нам мастер, чем же джанга лучше других фреймверков. Фласка или пирамиды, например?

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

парси стандартной либой xml - выводи принтом - профит.
fehu
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>'
4kpt_III
snake_eater
парси стандартной либой xml - выводи принтом - профит.

Кого “выводи”? Вы задачу хоть читали?

fehu
PS:Реализовать нужно логику, а не оформление. И как еще что бы при клики мышки по полю у меня отправляло на обработчик в который будет отправляться текущий ip, либо сделать дополнительное поле\кнопку при нажатии на которую будет перекидывать на обработчик. А дальше я уже буду подключатся по snmp и манипулировать свичем
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB