xml.etree.ElementTree
是 Python 标准库中的模块,用于解析和处理 XML 数据。它提供了一种简单的方式来解析 XML 文件并将其表示为树结构,使得可以方便地遍历和操作 XML 数据。
要使用 xml.etree.ElementTree
模块,你可以导入它并使用其中的函数和类来处理 XML 数据。以下是一些常见的操作:
xml.etree.ElementTree.parse(file)
:解析 XML 文件并返回一个树对象。xml.etree.ElementTree.Element
:表示 XML 元素的类。Element.find(tag)
:在当前元素的子元素中搜索指定标签的第一个匹配项。Element.findall(tag)
:在当前元素的子元素中搜索所有匹配指定标签的项。Element.text
:获取元素的文本内容。Element.attrib
:获取元素的属性字典。
这些功能可以帮助你在 Python 中处理 XML 数据,例如解析 XML 文件、提取特定标签的内容、修改 XML 结构等。
对于以下xml内容,需要获取Progress中的内容
xml
<Log>
<Progress>C:\Users\lenovo\Desktop\Progress.txt</Progress>
<Error>C:\Users\lenovo\Desktop\Error.txt</Error>
</Log>
python
import xml.etree.ElementTree as ET
tree = ET.parse(xml_path)
root = tree.getroot()
progress = root.find(".//Log/Progress")
progress_content=progress.text
使用find方法获取节点,且注意父节点.//,子节点/。使用.text提取文本
而对于xml中含有的多个相同结构的子节点
xml
<Inputs ParameterNum="2">
<Parameter>
<ParaName>InputndviPath</ParaName>
<ParaChsName>tiff格式ndvi</ParaChsName>
<ParaType>File</ParaType>
<DataType>tiff</DataType>
<ParaSource>Cal</ParaSource>
<ParaValue>F:\土壤水分算法封装\exe\ndvi.tif</ParaValue>
<OptionValue>DEFAULT</OptionValue>
<filePath>DEFAULT</filePath>
</Parameter>
<Parameter>
<ParaName>InputlstPath</ParaName>
<ParaChsName>tiff格式lst</ParaChsName>
<ParaType>File</ParaType>
<DataType>tiff</DataType>
<ParaSource>Cal</ParaSource>
<ParaValue>F:\土壤水分算法封装\exe\lst.tif</ParaValue>
<OptionValue>DEFAULT</OptionValue>
<filePath>DEFAULT</filePath>
</Parameter>
</Inputs>
python
tree = ET.parse(xml_path)
root = tree.getroot()
inputs = root.find(".//Inputs")
parameter_num_inputs = inputs.get("ParameterNum")
inputs_para_value = []
for parameter in inputs.findall("Parameter"):
inputs_para_value.append(parameter.find("ParaValue").text) # 获取参数
ndvipath = str(inputs_para_value[0]) # 影像路径
lstpath = str(inputs_para_value[1])
可以使用findall的方法