Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2016 16:28:58

alexviso
Зарегистрирован: 2016-09-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Из *.conf в XML, требуется помощь.

Подскажите пожалуйста, каким образом я могу из простейшего *.conf файла вытащить имена секций и значение только первого в секции параметра, чтобы из них создать XML файл.
вот какой xml требуется получить на выходе:

<Main>
<TCMIPPhoneDirectory clearlight=“true” />
<Title>Phonelist</Title>
<Prompt>Prompt</Prompt>
<DirectoryEntry>
<Name>Vasya</Name>
<Telephone>123</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Ivan</Name>
<Telephone>234</Telephone>
</DirectoryEntry>
</Main>

Заранее спасибо за помощь.

Офлайн

#2 Сен. 4, 2016 08:58:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Из *.conf в XML, требуется помощь.

alexviso
каким образом я могу из простейшего *.conf файла вытащить имена секций
Приведи conf-файл.



Офлайн

#3 Сен. 5, 2016 09:53:40

alexviso
Зарегистрирован: 2016-09-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Из *.conf в XML, требуется помощь.

Спасибо за отзывчивость)
Вот пример моего conf-файла:

 [user1]
type = peer
username = Vasiliy
secret = CegthGfhjkm
disallow = all
allow = alaw,gsm
[user2]
type = peer
secret = wRu8jb0
username = Ivan
disallow = all
allow = alaw,gsm
А вот что у меня получилось за выходные:
 import xml.etree.cElementTree as ET
import configparser
config = configparser.ConfigParser()
config.read('sipusers.conf')
dictionary = {}
for section in config.sections():
    dictionary[section] = {}
    for option in config.options(section):
        dictionary[section][option] = config.get(section, option)
Main = ET.Element("Main")
ET.SubElement(Main, "TCMIPPhoneDirectory clearlight=\"true\"")
ET.SubElement(Main, "Title").text = "Phonelist"
ET.SubElement(Main, "Prompt").text = "Prompt"
for section in config.sections():
    Child = ET.SubElement(Main, "DirectoryEntry")
    ET.SubElement(Child, "Name").text = section
    ET.SubElement(Child, "Telephone").text = dictionary[section]['username'] 
xml = ET.ElementTree(Main)
xml.write("phonebook.xml")

Прошу строго не судить, т.к. это мой первый опыт в программировании. Суть моей задачи в том, чтобы генерировать телефонную книгу для IP-телефонов. Вот как бы еще UTF-8 прикрутить, чтобы в xml русские буковки вставали?

Офлайн

#4 Сен. 5, 2016 11:55:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Из *.conf в XML, требуется помощь.

alexviso
Вот как бы еще UTF-8 прикрутить, чтобы в xml русские буковки вставали?
  
xml.write("phonebook.xml", encoding="utf-8", xml_declaration=True)



Отредактировано py.user.next (Сен. 5, 2016 11:57:51)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version