龙空技术网

DAY6-step11 Python XML Parser教程(Minidom,ElementTree)

易小盟办公设备企业店 110

前言:

而今大家对“pythonxml节点”大体比较讲究,同学们都需要学习一些“pythonxml节点”的相关内容。那么小编也在网络上网罗了一些对于“pythonxml节点””的相关文章,希望大家能喜欢,兄弟们一起来了解一下吧!

什么是XML?

XML代表可扩展标记语言。 它旨在存储和传输中小型数据,并广泛用于共享结构化信息。

Python使您能够解析和修改XML文档。 为了解析XML文档,您需要在内存中保存整个XML文档。 在本教程中,我们将看到如何在Python中使用XML minidom类加载和解析XML文件。

如何使用minidom解析XML

我们已经创建了一个示例XML文件,我们将对其进行分析。

步骤1)在文件中,我们可以看到名字,姓氏,住所和专业领域(SQL,Python,测试和业务)

步骤2)解析完文档后,我们将打印出文档根目录的“节点名称”和“ firstchild标记名”。 标记名和节点名是XML文件的标准属性。

导入xml.dom.minidom模块并声明必须解析的文件(myxml.xml)该文件包含有关员工的一些基本信息,例如名字,姓氏,家庭,专业知识等。我们在XML minidom上使用parse函数来加载和解析XML文件我们有变量doc,而doc获取了解析函数的结果我们想从文件中打印出节点名和子标记名,所以我们在打印函数中声明它运行代码-从XML文件中打印出节点名(#document),从XML文件中打印出第一个子标记名(employee)

注意:

节点名和子标记名是XML dom的标准名称或属性。 如果您不熟悉这些类型的命名约定。

步骤3)我们还可以从XML文档中调用XML标签列表并打印出来。 在这里,我们打印出了一组技能,例如SQL,Python,测试和业务。

声明可变的专业知识,我们将从中提取员工拥有的所有专业知识名称使用称为“ getElementsByTagName”的dom标准函数这将获得所有名为技能的元素声明循环每个技能标签运行代码-它将列出四个技能如何创建XML节点

我们可以使用“ createElement”函数创建一个新属性,然后将此新属性或标签附加到现有XML标签上。 我们在XML文件中添加了一个新标签“ BigData”。

您必须编写代码以将新属性(BigData)添加到现有XML标记中然后,您必须打印出带有新属性的XML标签,并在现有XML标签后附加新属性要添加新的XML并将其添加到文档中,我们使用代码“ doc.create elements”此代码将为我们的新属性“大数据”创建一个新的技能标签将此技能标签添加到文档的第一个孩子(员工)中运行代码-新标签“大数据”将与其他专业知识一起显示

XML Parser Example

Python 2 Example

import xml.dom.minidomdef main():# use the parse() function to load and parse an XML file   doc = xml.dom.minidom.parse("Myxml.xml");  # print out the document node and the name of the first child tag   print doc.nodeName   print doc.firstChild.tagName  # get a list of XML tags from the document and print each one   expertise = doc.getElementsByTagName("expertise")   print "%d expertise:" % expertise.length   for skill in expertise:     print skill.getAttribute("name")    # create a new XML tag and add it into the document   newexpertise = doc.createElement("expertise")   newexpertise.setAttribute("name", "BigData")   doc.firstChild.appendChild(newexpertise)   print " "   expertise = doc.getElementsByTagName("expertise")   print "%d expertise:" % expertise.length   for skill in expertise:     print skill.getAttribute("name")    if name == "__main__":  main();

Python 3 Example

import xml.dom.minidomdef main():    # use the parse() function to load and parse an XML file    doc = xml.dom.minidom.parse("Myxml.xml");    # print out the document node and the name of the first child tag    print (doc.nodeName)    print (doc.firstChild.tagName)    # get a list of XML tags from the document and print each one    expertise = doc.getElementsByTagName("expertise")    print ("%d expertise:" % expertise.length)    for skill in expertise:        print (skill.getAttribute("name"))    # create a new XML tag and add it into the document    newexpertise = doc.createElement("expertise")    newexpertise.setAttribute("name", "BigData")    doc.firstChild.appendChild(newexpertise)    print (" ")    expertise = doc.getElementsByTagName("expertise")    print ("%d expertise:" % expertise.length)    for skill in expertise:        print (skill.getAttribute("name"))if __name__ == "__main__":    main();
如何使用ElementTree解析XML

ElementTree是用于处理XML的API。 ElementTree是处理XML文件的简单方法。

我们将以下XML文档用作示例数据:

<data>   <items>      <item name="expertise1">SQL</item>      <item name="expertise2">Python</item>   </items></data>

使用ElementTree读取XML:

我们必须首先导入xml.etree.ElementTree模块。

import xml.etree.ElementTree as ET

现在让我们获取根元素:

root = tree.getroot()

以下是读取上述xml数据的完整代码

import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:   for subelem in elem:      print(subelem.text)

output:

Expertise Data:SQLPython
摘要:

Python使您能够一次解析整个XML文档,而一次不只是一行。 为了解析XML文档,您需要将整个文档存储在内存中。

解析XML文档导入xml.dom.minidom使用函数“ parse”来解析文档(doc = xml.dom.minidom.parse(文件名);使用代码(= doc.getElementsByTagName(“ xml标签名称”)从XML文档中调用XML标签列表。在XML文档中创建和添加新属性使用函数“ createElement”

标签: #pythonxml节点