#?介紹壹下要用的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為空。
學生_trs?=?""
#?遍歷每壹條學生信息
為了什麽?節點?在?學生節點:
#?getAttribute?用戶獲取節點的屬性,得到id屬性值,也就是學號。
#?因為xml在解析後是以Unicode編碼的,所以這裏應該轉換成utf8編碼,下面也是壹樣。
希德。=?node.getAttribute("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 >;?%?(席德,?姓名,?性嗎?專業)
#?將這壹行數據添加到總數據中
學生_trs?+=?學生_tr
#?
html?=?template . replace(" & lt;student_trs/>,?學生_trs)
#?將html結果輸入?output.html
打開(" output.html ",“w”)。書寫(html)
#?PS:妳提供的xml數據有問題。妳確實拿到了
#?正確的xml應該如下所示
"""
& lt?xml?version="1.0 "?編碼="UTF-8 "?& gt
& ltperson & gt
& lt學生& gt
& lt學生?id="20140711 " >
& lt姓名>三
& lt性別>男性性別>
& lt專業>計算機
& lt/student & gt;
& lt/學生& gt
& lt/person & gt;
"""