tft每日頭條

 > 生活

 > python解析xml文件内容

python解析xml文件内容

生活 更新时间:2024-10-13 23:18:23
概要:了解XML,熟悉Python的讀取操作,以及修改、删除操作。一、概述

XML(eXtensible Markup Language),即可擴展标記語言,可以任意定義需要的标簽,因為它擴展的靈活性,被廣泛應用于各類數據的傳輸和存儲。

Python對XML提供了良好的模塊支持,在各類模塊處理方式中,ElementTree模塊因為他的簡單易用性得到了廣泛應用。

二、關于XML實例說明

python解析xml文件内容(Python讀寫XML文檔)1

圖2-1

1、XML文件采用一種樹形表示,由一個根節點、子節點組成,每個節點都可以擁有“屬性(attrib)”、“内容(text)”、“标簽(tag)”三部分内容。

2、XML必須遵循的規範性:

· XML 文檔必須有一個根元素

· XML 标簽區分大小寫

· XML 元素嵌套必須正确

· XML 文檔必須有開始标簽、關閉标簽配對

· XML 屬性必須加引号

3、如下“2019-students.xml”文檔,作為後續python處理的基礎:

<class name="123class" grade="2019">

<student id="01">

<name>xiaoli</name>

<sex>male</sex>

<age>15</age>

<result>

<math>80</math>

<english>86</english>

<Chinese>90</Chinese>

</result>

</student>

<student id="02">

<name>xiaohuang</name>

<sex>male</sex>

<age>16</age>

<result>

<math>81</math>

<english>83</english>

<Chinese>76</Chinese>

</result>

</student>

<student id="03">

<name>xiaozhang</name>

<sex>male</sex>

<age>15</age>

<result>

<math>85</math>

<english>84</english>

<Chinese>80</Chinese>

<physics>90</physics>

</result>

</student>

</class>

關于節點的“屬性(attrib)”、“内容(text)”、“标簽(tag)”具體指什麼,可以通過python的輸出直觀的認識下。

三、python讀寫xml文檔

1、新建myxml工程

2、新建python文件xml_test.py文件,實現編碼

#模塊導入

import xml.etree.ElementTree as ET

######################################

#子函數編寫

#讀操作

def read_xml(root):

# 獲取二級節點信息

students = root.findall("student")

for student in students:

name = student.find("name")

print("\n")

print("name節點的名稱為:%s, 屬性為:%s, 文本内容:%s" % (name.tag, name.attrib, name.text))

# result有“元素内容”,沒有“文本内容”,所以文本内容為空

result = student.find("result")

# 遍曆所有子節點

for course in result:

print("result子節點的名稱為:%s, 文本内容:%s" % (course.tag, course.text))

return

#修改操作

def change_xml(root):

students = root.findall("student")

for student in students:

# 1、删除不合規元素physics

result = student.find("result")

for course in result:

if course.tag == "physics":

result.remove(course)

# 2、修改name元素為對應中文

name = student.find("name")

if name.text == 'xiaoli':

name.text = '小李'

elif name.text == 'xiaohuang':

name.text = '小黃'

elif name.text == 'xiaozhang':

name.text = '小張'

if __name__ == '__main__':

#原始文件

filename = r'E:\debug\2019-students.xml'

tree = ET.parse(filename)

#獲得根節點

root = tree.getroot()

print("根節點的名稱為:%s, 屬性為:%s" % (root.tag,root.attrib))

#讀操作

read_xml(root)

# 修改操作

change_xml(root)

#保存新文件

filename_new = r'E:\debug\2019-students_new.xml'

tree.write(filename_new, "UTF-8")

4、測試驗證

4.1、讀取部分運行結果

python解析xml文件内容(Python讀寫XML文檔)2

4.2、修改部分運行結果

python解析xml文件内容(Python讀寫XML文檔)3

5、總結

熟悉XML規範,程序編碼才能更加規範效率。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved