Re: [問題] 再來請教一個問題

看板Python作者 (生の直感、死の予感)時間17年前 (2007/07/05 10:10), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《CHRyo (絕體絕命自由客)》之銘言: : 有些xml檔是用來表示一顆樹的 : 假設其中一個檔名是a.xml : <Schedule size="9"> : - <Node Address="1" MoreToGo="2"> : <Forward>2</Forward> : <Forward>3</Forward> : </Node> : <Node Address="2" MoreToGo="0" /> : - <Node Address="3" MoreToGo="3"> : <Forward>4</Forward> : <Forward>5</Forward> : <Forward>6</Forward> : </Node> : <Node Address="4" MoreToGo="0" /> : - <Node Address="5" MoreToGo="2"> : <Forward>7</Forward> : <Forward>8</Forward> : </Node> : <Node Address="6" MoreToGo="0" /> : <Node Address="7" MoreToGo="0" /> : <Node Address="8" MoreToGo="0" /> : </Schedule> : 畫成圖形就是 : 1 : / \ : 2 3 : / | \ : 4 5 6 : / \ : 7 8 : 現在想要把xml檔抓出來表示成一個list : [[], [2,3],[] ,[4,5,6], [], [7,8], [], [], []] : 也就是list[1]=[2,3] : list[3]=[4,5,6] 這樣 : 我用xml.dom.minidom去parse a.xml : 也會用getElementsByTagName抓回NodeList : ============================================================= : from xml.dom import minidom : dom = minidom.parse('a.xml') : list = dom.getElementsByTagName('Node') : for x in list: : addr = x.getAttribute('Address') : forwards = x.getElementsByTagName('Forward') 不太懂問題在那,你的list存的不就是要列出每個node他的child是那些 = = 這要什麼演算法? 找出所有Node的工作dom都做掉了 d = {} for x in list: addr = x.getAttribute('Address') forwards = x.getElemensByTagName('Forward') <-- 列出所有x的child d[addr] = [k.name for k in forwards] : ============================================================= : 可是寫到這就卡住了... : 不知道要怎麼把抓進來的addr跟forward表示成那個list的樣子 : 所以又來請高手幫忙一下 : 謝謝 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.100.65 ※ 編輯: Lucemia 來自: 140.96.100.65 (07/05 10:11)

07/05 10:21, , 1F
痾..主要是我python不熟不知道該怎麼配對addr跟它的forwards
07/05 10:21, 1F

07/05 10:22, , 2F
突然覺得我真的很白痴.....感謝
07/05 10:22, 2F

07/05 10:27, , 3F
痾..exception:Element instance has no attribute "name"
07/05 10:27, 3F

07/05 10:28, , 4F
直接用k for k in forwrads的話又會變成ref...
07/05 10:28, 4F

07/05 10:29, , 5F
有什麼funtion可以抓name出來的嗎? data跟name都不行 @@||
07/05 10:29, 5F

07/05 13:20, , 6F
用k.firstChild.data就OK了
07/05 13:20, 6F

07/06 22:05, , 7F
... sorry 我完全會錯意... (呆)
07/06 22:05, 7F
文章代碼(AID): #16Z5C2Vk (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #16Z5C2Vk (Python)