首页 > 编程语言 >python3 xml.etree.ElementTree.ElementTree

python3 xml.etree.ElementTree.ElementTree

时间:2023-05-07 10:55:55浏览次数:40  
标签:xml None etree self ElementTree root def

1、介绍

对应整个xml结构。

2、初始化

class ElementTree:
    def __init__(self, element=None, file=None):
        self._root = element # first node
        if file:
            self.parse(file)
  • element,ElementTree.Element类型,即设置一个节点对象作为根节点
  • file,str类型,xml文件路径,如果存在则进行解析

3、方法

(1)getroot

def getroot(self):
  • 返回根节点,ElementTree.Element类型

(2)parse

def parse(self, source, parser=None):
  • 解析
  • source, str类型,表示待解析的xml文件路径
  • parser,解析模式,可以不设置

(3)iter

def iter(self, tag=None):
  • 对所有子节点迭代,遵循的是先从外到内,再从前到后
  • 包括根节点本身

(4)find

def find(self, path, namespaces=None):

(5)findtext

def findtext(self, path, default=None, namespaces=None):

(6)findall

def findall(self, path, namespaces=None):
 

(7)iterfind

def iterfind(self, path, namespaces=None):

(8)write

def write(self, file_or_filename,
          encoding=None,
          xml_declaration=None,
          default_namespace=None,
          method=None, *,
          short_empty_elements=True):
  • 将本对象写入文件中
  • encoding,str类型,即写入文件的编码,一般设为'utf-8'
  • xml_declaration,bool类型,为True会在首行写入xml声明

3、parse函数

def parse(source, parser=None):
    tree = ElementTree()
    tree.parse(source, parser)
    return tree
  • 作用是解析成ElementTree对象
  • source,可以是一个文件路径,str类型。也可以是一个文件对象
  • parser,解析模式,非必要参数

4、使用

(1)创建并写入

# 创建树结构
root = ElementTree.Element('Root')
tree = ElementTree.ElementTree(root)
# 创建节点,节点名称,属性键值对
name = Element("name", {'id': 'id2', 'order': 'order2'})
# 节点的文本
name.text = "xiaoming"
age = Element("age")
age.text = "12"
gender = Element("gender")
gender.text = "男"
# 向一个元素中添加
root.append(name)
root.append(age)
name.append(gender)
# 树结构
tree.write("1.xml", encoding='utf-8', xml_declaration=True)
<?xml version='1.0' encoding='utf-8'?>
<Root><name id="id2" order="order2">xiaoming<gender>男</gender></name><age>12</age></Root>

(2)读取xml文件解析

xml = ElementTree.parse('1.xml')
root = xml.getroot()
for item in root.iter(tag=None):
    print(item)

 

标签:xml,None,etree,self,ElementTree,root,def
From: https://www.cnblogs.com/wd404/p/17379000.html

相关文章

  • python3 xml etree使用
    1、创建xml(1)通过ElementTree.ElementTree类创建,并设置一个ElementTree.Element对象作为参数,该参数对象作为根节点(2)通过ElementTree.Element创建一个或多个节点,为这些节点设置tag、attrib、text和tail(3)这些节点通过父节点的append方法添加,管理关系。ElementTree.ElementTr......
  • python3 xml tree
    Python3XML解析|菜鸟教程(runoob.com)Python标准库之xml.etree-Awakenedy-博客园(cnblogs.com)1、介绍通过python3自带的xml.etree.ElementTree模块可以实现对xml的操作。XML是一种固有的分层数据格式,也是用一棵树来表示它。为此,本模块分为两个类:ElementTree将......
  • WEB|[NCTF2019]True XML cookbook
    题目提示XML,直接抓包注入XML<?xmlversion="1.0"?><!DOCTYPElkj[<!ENTITYadminSYSTEM"file:///flag">]><user> <username>&admin;</username> <password>1</password></user>读取失败修改......
  • web开发总结----xml的写入、读取---2
    publicclassDOM4JTest{/***//***//***//***//***//***//***//***DOM4J读写XML示例**@paramargs*@throwsException*/publicstaticvoidmain(String[]args){try{XMLWriter......
  • XmlNamespaceManager与XmlDocument.NameTable浅述
    XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml);XmlNamespaceManagernsmgr=newXmlNamespaceManager(doc.NameTable);nsmgr.AddNamespace("ns","http://WebXml.com.cn/");varnodes=doc.SelectNodes("//ns:string",nsmgr);......
  • Spring17_基于XML的AOP开发10
    一、快速入门1. 导入AOP相关坐标2. 创建目标接口和目标类(内部有切点)3. 创建切面类(内部有增强方法)4. 将目标类和切面类的对象创建权交给spring5. 在applicationContext.xml中配置织入关系6. 测试代码代码实现:新建一个module:itheima_spring_aop1.......
  • Access to XMLHttpRequest at 'file:///xxx/%C3%A7%C2%9C' from origin 'null' has be
    AccesstoXMLHttpRequestat'file:///xxx/%C3%A7%C2%9C'fromorigin'null'hasbeenblockedbyCORSpolicy:Crossoriginrequestsareonlysupportedforprotocolschemes:http,data,isolated-app,chrome-extension,chrome,https,chrome......
  • OpenCV3训练人脸检测分类器生成XML文件的过程
    原文:https://www.bilibili.com/read/cv10624306/OpenCV训练自己的分类器注:本文写的是一个训练人脸分类器的例子,亲自试验过,采用的是openCV3.41.准备训练样本看网上说正负样本比例为1:3最佳;尺寸为20x20最佳附上人脸训练的数据集的下载链接:https://pan.baidu.com/s/1AxoIMFycfpeIMtD......
  • Spring AOP官方文档学习笔记(三)之基于xml的Spring AOP
    1.声明schema,导入命名空间(1)如果我们想要使用基于xml的springaop,那么,第一步,我们需要在xml配置文件中声明springaopschema,导入命名空间,如下这是一个标准的模板<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmln......
  • java.Tang.CassNotFoundException javax.xmL.bind.DatatypeConverter
    报错如下图所示:故障原因:JAXBAPI是javaEE的API,因此在javaSE9.0中不再包含这个Jar包。java9中引入了模块的概念,默认情况下,JavaSE中将不再包含javaEE的Jar包而在java6/7/8时关于这个API都是捆绑在一起的解决方案:降低JDK版本到JDK8手动加入这些依赖......