#?介紹要使用的xml解析庫?在這裏,我們可以使用更輕的minidom。
進口?xml.dom.minidom
#?定義html輸出模板
#?後來,我們只想把學生數據部分(
模板?=?"""
& lthtml & gt
& lt桌子?border =“1“?style =“width:100%;文本對齊:?居中;”& gt
& lttr & gt
& lttd?colspan =“4“?& gt學生信息
& lt/tr & gt;
& ltstudent _ TRS/& gt;
& lt/table & gt;
& lt/html & gt;
"""
#?讀取xml文檔的內容,該文檔假定為。xml
多姆。=?XML . DOM . minidom . parse(‘a . XML‘)
#?獲取xml中的所有學生節點。
學生節點?=?dom.getElementsByTagName(“學生”)
#?初始化student_trs為空。
student_trs?=?""
#?遍歷每壹條學生信息
為了什麽?節點?在?學生節點:
#?getAttribute?用戶獲取節點的屬性並獲取id屬性值,即學生編號。
#?因為xml在解析後是以Unicode編碼的,所以這裏應該將其轉換為utf8編碼,下面也是如此。
希德。=?node . get attribute(“id“)。編碼(‘utf-8‘)?
#?獲取所有子節點
孩子?=?節點。子節點
為了什麽?孩子?在?兒童:
#?將子節點的名稱確定為?姓名、性別和專業?如果是,則收集相應的文本。
如果?child . nodename . encode(‘utf-8‘)?==?【名稱】:
#?使用?。子節點【0】。nodeValue?方法獲取節點的文本。
名字?=?child . child nodes【0】。nodevalue。encode(‘utf-8‘)?
如果?child . nodename . encode(‘utf-8‘)?==?【性別】:
性?=?child . child nodes【0】。nodevalue。encode(‘utf-8‘)?
如果?child . nodename . encode(‘utf-8‘)?==?“主要”:
專業?=?child . child nodes【0】。nodevalue。encode(‘utf-8‘)
#?用html編寫壹行學生數據。
學生_tr?=?“& lttr & gt& lttd & gt% s & lt/TD & gt;& lttd & gt% s & lt/TD & gt;& lttd & gt% s & lt/TD & gt;& lttd & gt% s & lt/TD & gt;& lt/tr & gt;”?%?(席德,?名字?性?專業)
#?將此行數據添加到總數據中
student_trs?+=?學生_tr
#?
html?=?template . replace(“& lt;student_trs/》,?student _ trs)
#?將html結果輸入?output.html
打開(“output.html“,?“w”)。書寫(html)
#?PS:妳提供的xml數據有問題。妳確實拿到了
#?正確的xml應該如下所示
"""
& lt?xml?version =“1.0“?編碼=“UTF-8”?& gt
& lt個人& gt
& lt學生& gt
& lt學生?id =“20140711“》;
& lt名稱》三
& lt性別》男性《/性別》
& lt專業》計算機
& lt/student & gt;
& lt/學生& gt
& lt/person & gt;
"""