用DOM實現對XML檔案的解析

2022-05-17 19:39:06 字數 2975 閱讀 3884

dom的 xml.dom.minidom 子模組、xml.dom.pulldom 子模組分別提供兩種形式的解析器。

1.1 node 介面物件相關函式

node.childnodes,返回當前節點中包含的節點列表,這是乙個唯讀屬性。

1.2 document 介面物件相關函式

document.documentelement,返回文件的所有元素。

document.getelementsbytagname(tagname),搜尋所有具有特定元素型別名稱下的子元素,返回元素集合。

1.3 element 介面物件相關函式

element.hasattribute(name),如果元素具有按指定 name 命名的屬性,返回true。

element.getattribute(name),以字串形式返回指定 name 命名的屬性的值,如果不存在這樣的標籤,則返回空字串。

element.setattribute(name,value),設定 name 標籤指定的值。

element.removeattribute(name),刪除 name 標籤指定的元素。

war, thriller

***2003

pg10

talk about a us-japan war

from xml.dom.minidom import parse

import xml.dom.minidom

# 使用minidom解析器開啟 xml 文件

domtree = xml.dom.minidom.parse('d:\\my-python\\xml\\movies.xml')

# 該解析器解析成功,返回乙個文件物件domtree接收

collection = domtree.documentelement # 把所有的元素存入集合中

print(collection.toxml())

if collection.hasattribute("shelf"):

print ("root element : %s" % collection.getattribute("shelf"))

# 獲取movie元素下的子元素集合

movies = collection.getelementsbytagname("movies")

movies_record =

# 列印每部電影的詳細資訊

for movie in movies:

if movie.hasattribute("title"): # 判斷是否存在title屬性

type = movie.getelementsbytagname('type')[0] # 獲取 type 標籤對應的元素

format = movie.getelementsbytagname('format')[0]

rating = movie.getelementsbytagname('rating')[0]

stars = movie.getelementsbytagname('stars')[0]

description = movie.getelementsbytagname('description')[0]

print(movies_record)

war, thriller

***2003

pg10

talk about a us-japan war

root element : new arrivals

['enemy behind', 'war, thriller', '***', 'pg', '10', 'talk about a us-japan war']

from xml.dom.minidom import parse

import xml.dom.minidom

# 使用minidom解析器開啟 xml 文件

domtree = xml.dom.minidom.parse('d:\\my-python\\xml\\movies.xml')

# 該解析器解析成功,返回乙個文件物件domtree接收

# 把所有的元素存入集合中

collection = domtree.documentelement

# 獲取 stars 的 nodelist 物件集合

stars = collection.getelementsbytagname("stars")

stars_object = stars[0] # 獲取列表第乙個price節點(元素)

stars_object.firstchild.data = 12 # 修改第乙個節點的值

print('修改數量成功!')

# 獲取 movies 的 nodelist 物件集合

movies = collection.getelementsbytagname("movies")

collection.removechild(movies[1])

print('刪除節點成功')

解析xml檔案(DOM解析)

解析的檔案 醫院心電圖記錄單 門診號 1002080066 住院號 201800964 姓名 羅2 性別 女 年齡 26歲 心檢號 科室 婦產科 床號 9 複查時註明原心檢號 韻律 竇律 心房率 82 心室率 82 軸向 電軸正常 pr間期 0.13 qrs波 0.08 qt間期 0.34 正常心電...

Dom解析XML檔案

dom解析xml檔案的原理是把xml檔案的文件樹物件全部載入到記憶體中,然後解析,這種解析方式的缺點在於在手機 pad等cpu運算速度不快,記憶體有限的裝置上會影響軟體效率和系統效能。使用dom技術解析xml檔案案例 maomao 26 hy 27解析 public static listdompa...

Dom解析xml檔案

xml指可擴充套件標記語言 xml的設計宗旨是傳輸儲存資料 xml文件樹結構 xml文件形成了一種樹結構,它從 根部 開始,然後擴充套件到枝葉 利用dom規範,能夠實現dom 文件和xml之間的相互轉換,遍歷 操作相應dom文件的內容 dom規範的核心就是樹模型 dom解析xml的步驟 1.獲得解析...