簡介
xml不是為了方便閱讀而設計,而是為了編碼為資料。當有一些文字有很多文件,可以用編碼的方式使3一些文字便與處理。
設計原則
def
get_author
(root)
: authors =
for author in root.findall(
'./fm/bibl/aug/au'):
# 用這種方法就可以建立字典
data =
# 用這種方法可以直接給字典中的鍵賦值
data[
"fnm"
]= author.findtext(
'./fnm'
) data[
"snm"
]= author.findtext(
'./snm'
) data[
"email"
]= author.findtext(
'./email'
)# authors列表中就會包含乙個又乙個data字典
return authors
最後部分輸出結果如下所示:
[, ,…]
這裡我們介紹一下用於處理xml的findtext()方法
findtext(要匹配的, 預設=none,命名空間=none)
查詢發現文字文件中的第乙個子元素所要匹配的內容,匹配的內容可能是標籤名或路徑。返回第乙個匹配元素的文字內容,如果未找到元素,則返回預設值。注意,如果匹配元素沒有文字內容,則返回空字串。命名空間是從命名空間字首到全名的可選對映。
<?xml version="1.0" encoding="utf-8"?>
>
>
4maxid
>
username
="pytest"
passwd
='123456'
>
>
pythoncaption
>
"4">
>
測試caption
>
item
>
login
>
"2">
>
zopecaption
>
item
>
catalog
>
處理方法如下:
def
get_authors
(root)
: authors =
for author in root.findall(
'./fm/bibl/aug/au'):
data =
data[
"fnm"
]= author.findtext(
'./fnm'
) data[
"snm"
]= author.findtext(
'./snm'
) data[
"email"
]= author.findtext(
'./email'
) insr = author.findall(
'./insr'
)# 用findall()返回的是乙個列表,所以要進行一下遍歷操作
for i in insr:
# 新增到data中「insr」鍵所對應的值得列表中。
data[
"insr"
]"iid"])
return authors
此處的insr就帶有屬性,部分資料集中xml如下所示:
iid=
"i2"
/>
部分輸出結果如下:
[…]接下來介紹一下處理帶屬性的資料的方法:
findall(要匹配的, namespaces=none)
通過標籤名稱或路徑查詢所匹配的所有元素,返回包含文件順序中所有匹配元素的列表。命名空間是從命名空間字首到全名的可選對映。
attrib介紹
包含元素屬性的字典。注意,當屬性值始終是乙個真正的可變的python字典時,elementtree實施可能選擇其他的內部表示。
用python讀取xml檔案
本以為python讀取xml檔案和讀取excel一樣簡單,可網上各種教程複雜得一筆。我整理一種簡單的xml讀取方法。基於dom.minidom來解析xml檔案,是比較友好方便的。import xml.dom.minidom as xmldom 讀取xml檔案 xml file xmldom.pars...
python 用python對xml進行操作
首先,我先給出一段xml文件 liechtenstein yes 2 2008 141100 austria direction e switzerland direction w singapore yes 5 2011 59900 malaysia direction n panama yes ...
用DataSet讀取xml檔案
假如,有乙個這樣的xml檔案 0廣告集錦 239駿篇 flv flvimg 用心演繹.jpg flv 用心演繹.flv flv 用心演繹.flv 01 01 239238 拍攝花絮 flv flvimg 拍攝花絮.jpg flv 拍攝花絮.flv flv 拍攝花絮.flv 04 34 2381 fl...