亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python XML Parser 教程:读取 xml 文件示例(Minidom、ElementTree)

什么是 XML?

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

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

在本教程中,我们将学习-

如何使用 minidom 解析 XML

我们已经创建了一个我们将要解析的示例 XML 文件。

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


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

注意

Nodename 和 child tagname 是 XML dom 的标准名称或属性。如果您不熟悉这些类型的命名约定。

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

如何创建 XML 节点

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

  1. 您必须编写代码才能将新属性 (BigData) 添加到现有 XML 标记中
  2. 然后你必须打印出带有新属性的 XML 标记,并附加现有的 XML 标记

XML 解析器示例

Python 2 示例

import xml.dom.minidom

def 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 示例

import xml.dom.minidom

def 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 ET
tree = ET.parse('items.xml')
root = tree.getroot()

# all items data
print('Expertise Data:')

for elem in root:
   for subelem in elem:
      print(subelem.text)

输出:

Expertise Data:
SQL
Python

总结:

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


Python

  1. Python 文件 I/O
  2. Java BufferedReader:如何通过示例在 Java 中读取文件
  3. Python String strip() 函数与示例
  4. Python 字符串长度 | len() 方法示例
  5. Python 教程中的收益:生成器和收益与返回示例
  6. 集合中的 Python 计数器示例
  7. Python 中的 Enumerate() 函数:循环、元组、字符串(示例)
  8. Python 检查文件是否存在 |如何在 Python 中检查目录是否存在
  9. Python JSON:编码(转储)、解码(加载)和读取 JSON 文件
  10. Python 列表 index() 与示例
  11. Python - 文件 I/O
  12. Python - XML 处理