0

好吧,我已经到了可以生成 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 文件中。这是由代码中的先前方法生成的。

4

3 回答 3

1

将 x1elm 放在引号中:

x = root.findtext('x1elm');

您必须传递与 XML 元素名称匹配的字符串。事实上,x1elm 是一个 Python 变量,并且是一个未定义的变量。

于 2013-07-12T19:47:15.813 回答
1

搜索文本x1elm需要在引号内:'x1elm'

于 2013-07-12T19:44:48.950 回答
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
于 2013-07-12T19:52:43.047 回答