Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 28, 2010 11:01:47

Aviz
От:
Зарегистрирован: 2009-03-06
Сообщения: 39
Репутация: +  1  -
Профиль   Отправить e-mail  

как в xml документе создать однотипные элементы

Напписал функцию, для создания xml документа:

import xml.dom.minidom as xdm

def XmlDocCreate():
koord = [1,2,3]
Domm=xdm.Document()

MapInfoList=Domm.createElement("MapInfoList")
Domm.appendChild(MapInfoList)

MapObject = Domm.createElement("MapObject")
MapInfoList.appendChild(MapObject)

Point = Domm.createElement("Point")
MapObject.appendChild(Point)

N = Domm.createElement("N")
Point.appendChild(N)

X = Domm.createElement("X")
Point.appendChild(X)

for i in xrange(len(koord)):

s = str(i)
Text = Domm.createTextNode(s)
N.appendChild(Text)


s = str(koord[i])
Text = Domm.createTextNode(s)
X.appendChild(Text)


print Domm.toxml("utf-8")
которая создает такой документ:
<?xml version="1.0" encoding="utf-8" ?> 
- <MapInfoList>
- <MapObject>
- <Point>
<N>012</N>
<X>123</X>
</Point>
</MapObject>
</MapInfoList>
а необходимо создать такой:
<?xml version="1.0" encoding="utf-8" ?> 
- <MapInfoList>
- <MapObject>
- <Point>
<N>0</N>
<X>1</X>
</Point>
<Point>
<N>1</N>
<X>2</X>
</Point>
<Point>
<N>2</N>
<X>3</X>
</Point>
</MapObject>
</MapInfoList>
Пожалуйста подскажите правильный ход мысли.



Офлайн

#2 Янв. 28, 2010 12:20:53

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

как в xml документе создать однотипные элементы

У вас, случаем, не возникало мысли переставить несколько строк местами

import xml.dom.minidom as xdm

def XmlDocCreate():
koord = [1,2,3]
Domm=xdm.Document()

MapInfoList=Domm.createElement("MapInfoList")
Domm.appendChild(MapInfoList)

MapObject = Domm.createElement("MapObject")
MapInfoList.appendChild(MapObject)


for i in xrange(len(koord)):

Point = Domm.createElement("Point")
MapObject.appendChild(Point)

N = Domm.createElement("N")
Point.appendChild(N)

X = Domm.createElement("X")
Point.appendChild(X)

s = str(i)
Text = Domm.createTextNode(s)
N.appendChild(Text)


s = str(koord[i])
Text = Domm.createTextNode(s)
X.appendChild(Text)


print Domm.toxml("utf-8")


XmlDocCreate()



Офлайн

#3 Янв. 28, 2010 13:27:50

Aviz
От:
Зарегистрирован: 2009-03-06
Сообщения: 39
Репутация: +  1  -
Профиль   Отправить e-mail  

как в xml документе создать однотипные элементы

Конечно вознникала)))))) но, почему - то не работало(((
Вот этот код, почти, как ваш, работает

import xml.dom.minidom as xdm

def XmlDocCreate():
koord = [1,2,3]
Domm=xdm.Document()

MapInfoList=Domm.createElement("MapInfoList")
Domm.appendChild(MapInfoList)

MapObject = Domm.createElement("MapObject")
MapInfoList.appendChild(MapObject)

for i in xrange(len(koord)):
Point = Domm.createElement("Point")
MapObject.appendChild(Point)

N = Domm.createElement("N")
Point.appendChild(N)
Text = Domm.createTextNode(str(i))
N.appendChild(Text)

X = Domm.createElement("X")
Point.appendChild(X)
Text = Domm.createTextNode(str(koord[i]))
X.appendChild(Text)


print Domm.toxml("utf-8")
Мистика, блин…



Офлайн

#4 Фев. 5, 2010 17:10:41

Чел_вТапКах
От:
Зарегистрирован: 2009-07-22
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

как в xml документе создать однотипные элементы

может посмотрите в сторону lxml для формирования xml он кажется удобнее



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version