我当前正在使用模块元素树和urllib来访问/解析和返回xml文件中的值。
使用root.find / root.findall()方法和XPath语法在xml中定位所需的信息。然后使用(.text)返回child / grandchild元素的值。
[将每个root.find()分配给变量,然后接受变量并附加(.text),我可以解析并返回值而没有问题。
(即)x= root.find(./Cameras/Camera/Connected')
print (x.text)
==> True
但是我想将这些“ root.find()”放在字典中,稍后在脚本中调用它们。
(即)location= {
'Cam': "root.find('./Cameras/Camera/Connected')",
'Mic': "root.findall('./Audio/Input/Connectors/Microphone')",
'Prod_ID': "root.find('./SystemUnit/ProductPlatform')"
}
但是,当通过键索引到字典,然后尝试添加(.text)时,出现以下错误;y=location['Cam']
print (y.text)
==> AttributeError: 'str' object has no attribute 'text'
所以这可能是一个容易忽略的简单问题,但是这两种方法返回的值相同吗?元素树模块可以从字典中读取root.find()吗?