好吧,我已经知道如何生成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
指定的XML文件中的x1elm = 300。这是由代码中的前一个方法生成的。
答案 0 :(得分:1)
搜索文本x1elm
必须在引号内:'x1elm'
答案 1 :(得分:1)
将x1elm放在引号中:
x = root.findtext('x1elm');
您必须传递与XML元素名称匹配的字符串。实际上,x1elm是一个Python变量,并且是一个未定义的变量。
答案 2 :(得分: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