Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2015 07:02:50

snake_eater
Зарегистрирован: 2015-03-30
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

да кчто bootle и jinja надо django сразу. без него никак

Офлайн

#2 Ноя. 16, 2015 08:45:05

fehu
Зарегистрирован: 2015-09-21
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

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

Офлайн

#3 Ноя. 16, 2015 14:23:30

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

snake_eater

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

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

Отредактировано 4kpt_III (Ноя. 16, 2015 14:35:19)

Офлайн

#4 Ноя. 23, 2015 15:42:11

snake_eater
Зарегистрирован: 2015-03-30
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

так то это сарказм был.
зачем предлагать веб фрейморк вообще - если он не решает конкретно задачи парсинга и вывода.

парси стандартной либой xml - выводи принтом - профит.

Офлайн

#5 Ноя. 23, 2015 15:47:34

fehu
Зарегистрирован: 2015-09-21
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

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>'

Отредактировано fehu (Ноя. 23, 2015 15:49:39)

Офлайн

#6 Ноя. 23, 2015 16:06:25

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Помогите распарсить xml в табличку

snake_eater
парси стандартной либой xml - выводи принтом - профит.

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

fehu
PS:Реализовать нужно логику, а не оформление. И как еще что бы при клики мышки по полю у меня отправляло на обработчик в который будет отправляться текущий ip, либо сделать дополнительное поле\кнопку при нажатии на которую будет перекидывать на обработчик. А дальше я уже буду подключатся по snmp и манипулировать свичем

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version