Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解析处于多层次结构下的XML文件?_Python_Xml Parsing_Hierarchy - Fatal编程技术网

Python 如何解析处于多层次结构下的XML文件?

Python 如何解析处于多层次结构下的XML文件?,python,xml-parsing,hierarchy,Python,Xml Parsing,Hierarchy,它对我不起作用,因为它给我 AttributeError:“非类型”对象没有属性“文本” 我在其他代码中也发现了同样的错误,请告诉我是否有解决方法。好吧,您在查找中使用的路径显然是错误的。 我建议您重新阅读文档,尤其是关于 虽然这对我有用 import xml.etree.ElementTree as ET tree = ET.parse(xml_file) root = tree.getroot() # element: jmeterTestPlan 使用这样的东西可能更好。 尤其是要替换多

它对我不起作用,因为它给我

AttributeError:“非类型”对象没有属性“文本”


我在其他代码中也发现了同样的错误,请告诉我是否有解决方法。

好吧,您在
查找中使用的路径显然是错误的。
我建议您重新阅读文档,尤其是关于

虽然这对我有用

import xml.etree.ElementTree as ET
tree = ET.parse(xml_file)
root = tree.getroot() # element: jmeterTestPlan
使用这样的东西可能更好。 尤其是要替换多个值时:

print(root.find('./hashTree/hashTree/ThreadGroup/longProp[@name="ThreadGroup.end_time"]').text)

可以提供一个工作XML吗?这是无法解析的…好吧,我会把整个XML放进去,现在问题被编辑了
def cache_it2(datafile):
    tree = et.parse(datafile)
    tree.find('jmeterTestPlan/hashTree/hashTree/ThreadGroup/longProp/ThreadGroup.end_time').text = 'false'
    tree.write(datafile)
import xml.etree.ElementTree as ET
tree = ET.parse(xml_file)
root = tree.getroot() # element: jmeterTestPlan
print(root.find('./hashTree/hashTree/ThreadGroup/longProp[@name="ThreadGroup.end_time"]').text)
names_and_values = {
    "WebDriverConfig.maximize_browser" : "true",
    "WebDriverConfig.reset_per_iteration": "true",
    # ...
}

for name, value in names_and_values.items():
    element = next(root.iterfind(f'.//*[@name="{name}"]'))
    element.text = value

print(ET.tostring(root))