Найти - Пользователи
Полная версия: как в xml документе создать однотипные элементы
Начало » Python для новичков » как в xml документе создать однотипные элементы
1
Aviz
Напписал функцию, для создания 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>
Пожалуйста подскажите правильный ход мысли.
Андрей Светлов
У вас, случаем, не возникало мысли переставить несколько строк местами
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()
Aviz
Конечно вознникала)))))) но, почему - то не работало(((
Вот этот код, почти, как ваш, работает
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")
Мистика, блин…
Чел_вТапКах
может посмотрите в сторону lxml для формирования xml он кажется удобнее
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