Python提取xml节点

xml.etree.ElementTree 是 Python 标准库中的模块,用于解析和处理 XML 数据。它提供了一种简单的方式来解析 XML 文件并将其表示为树结构,使得可以方便地遍历和操作 XML 数据。

要使用 xml.etree.ElementTree 模块,你可以导入它并使用其中的函数和类来处理 XML 数据。以下是一些常见的操作:

  1. xml.etree.ElementTree.parse(file):解析 XML 文件并返回一个树对象。
  2. xml.etree.ElementTree.Element:表示 XML 元素的类。
  3. Element.find(tag):在当前元素的子元素中搜索指定标签的第一个匹配项。
  4. Element.findall(tag):在当前元素的子元素中搜索所有匹配指定标签的项。
  5. Element.text:获取元素的文本内容。
  6. Element.attrib:获取元素的属性字典。

这些功能可以帮助你在 Python 中处理 XML 数据,例如解析 XML 文件、提取特定标签的内容、修改 XML 结构等。

对于以下xml内容,需要获取Progress中的内容

<Log>
			<Progress>C:\Users\lenovo\Desktop\Progress.txt</Progress>
			<Error>C:\Users\lenovo\Desktop\Error.txt</Error>
</Log>
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中含有的多个相同结构的子节点

<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>
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的方法

相关推荐

  1. Python提取xml节点

    2024-02-22 00:42:02       32 阅读
  2. 【Qt】xml文件节点读取

    2024-02-22 00:42:02       5 阅读
  3. python查询xml类别

    2024-02-22 00:42:02       29 阅读
  4. python xml 解析

    2024-02-22 00:42:02       21 阅读
  5. Python XML 解析

    2024-02-22 00:42:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 00:42:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 00:42:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 00:42:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 00:42:02       18 阅读

热门阅读

  1. Android批量加载图片OOM问题

    2024-02-22 00:42:02       29 阅读
  2. Android输入法相关(一)

    2024-02-22 00:42:02       24 阅读
  3. Mysql卸载

    2024-02-22 00:42:02       26 阅读
  4. C# action,delegate,func的用法和区别

    2024-02-22 00:42:02       28 阅读
  5. 如何解决AI场景下的冯诺伊曼陷阱?

    2024-02-22 00:42:02       26 阅读
  6. RESTful 风格是指什么

    2024-02-22 00:42:02       27 阅读
  7. vue从入门到进阶的30个vue代码示例

    2024-02-22 00:42:02       32 阅读
  8. Docker基于本地文件安装Nacos单机版

    2024-02-22 00:42:02       28 阅读
  9. SQL语句分为以下三种类型

    2024-02-22 00:42:02       29 阅读
  10. Python 机器学习 决策树 分类原理

    2024-02-22 00:42:02       31 阅读
  11. C#程序反编译经验总结

    2024-02-22 00:42:02       31 阅读
  12. React 的发展历史一览

    2024-02-22 00:42:02       25 阅读
  13. 工具栏和菜单栏的关系是什么?

    2024-02-22 00:42:02       41 阅读
  14. 表空间查询sql

    2024-02-22 00:42:02       26 阅读
  15. 工作记录之策略模式

    2024-02-22 00:42:02       26 阅读