2013-07-12 2 views
0

Хорошо, у меня это до такой степени, что я могу получить созданный файл XML. теперь я пытаюсь вернуть его обратно в программу, которая будет использоваться для хранения координат. Вот что я работаю в этой конкретной части.Grabbing/Printing Data from XML

def diplayX(): 
root = etree.parse('c:\\Users\namehere\Desktop\coord_man.xml').getroot() 
x = root.findtext(x1elm) 
print(x) 

Поскольку файл с копированием XML не будет показывать код, но только цифры здесь являются копией рассматриваемого XML. Изменено имя в Интернете, но это не имеет большого значения. http://pastebin.com/yQfdFgwr

Вот моя ошибка:

Traceback (most recent call last): 
File "<pyshell#8>", line 1, in <module> 
sloop() 
File "C:\Users\namehere\Desktop\Folder of CodeMonkey\piSrc\pyclickerXML.py", line 71, in sloop 
x = root.findtext(x1elm) 
NameError: global name 'x1elm' is not defined 

x1elm = 300 в указанном файле XML. Что было создано предыдущим методом в коде.

ответ

1

SearchText x1elm должно быть взято в кавычки: 'x1elm'

+0

Я дал вам правильный ответ, так как вы пришли с ним первым! - Благодаря! – CodeMonkeyAlx

1

Put x1elm в кавычки:

x = root.findtext('x1elm'); 

Вы должны передать строку, которая соответствует имя XML-элемента. Как бы то ни было, x1elm является переменной Python и неопределенным.

+0

Благодарим вас! Кто-то получил ответ перед вами по шкале времени. – CodeMonkeyAlx

0

XML

<data> 
    <items> 
     <item name="item1">item1</item> 
     <item name="item2">item2</item> 
     <item name="item3">item3</item> 
     <item name="item4">item4</item> 
    </items> 
</data> 

Python:

from xml.dom import minidom 
xmldoc = minidom.parse('items.xml') 
itemlist = xmldoc.getElementsByTagName('item') 
print "Len : ", len(itemlist) 
print "Attribute Name : ", itemlist[0].attributes['name'].value 
print "Text : ", itemlist[0].firstChild.nodeValue 
for s in itemlist : 
    print "Attribute Name : ", s.attributes['name'].value 
    print "Text : ", s.firstChild.nodeValue