Python 3.x 用lxml解析xml
我正在用lxmlpython3解析xml文件。将元素转换为dict of list of dict。但是代码没有正常工作,并且出现了一些奇怪的情况,我尝试了调试,但无法找出问题所在: 下面是我写的片段:Python 3.x 用lxml解析xml,python-3.x,lxml,Python 3.x,Lxml,我正在用lxmlpython3解析xml文件。将元素转换为dict of list of dict。但是代码没有正常工作,并且出现了一些奇怪的情况,我尝试了调试,但无法找出问题所在: 下面是我写的片段: tree = lxml.etree.parse(self.meetingXmlFile) root = tree.getroot() roomList = [] for child in root.iter(): # print("Tag is
tree = lxml.etree.parse(self.meetingXmlFile)
root = tree.getroot()
roomList = []
for child in root.iter():
# print("Tag is ::%s and text is ::%s" % (child.tag , child.text))
if child.tag == "TowerName":
roomList.clear()
indexTower = child.text
# print(indexTower)
elif child.tag == "BigMeetingRooms" :
roomSize = "bigMeetingRoom"
elif child.tag == "SmallMeetingRooms":
roomSize = "smallMeetingRoom"
elif child.tag == "MeetingRoomName" :
roomName = child.text
elif child.tag == "MeetingRoomMailId" :
roomMailId = child.text
roomDict={roomName:roomMailId}
roomList.append(roomDict)
if roomSize == "bigMeetingRoom" :
# print(indexTower, " ", roomName, " ", roomMailId)
self.bigMeetingRoom[indexTower] = roomList
print(indexTower, " ", self.bigMeetingRoom[indexTower])
print(self.bigMeetingRoom)
<>而不是使用<代码>迭代()/代码>和测试标记名称,考虑使用<代码> XPATH()/>代码>…< /P> Python 3.6
从lxml导入etree
tree=etree.parse(“input.xml”)
roomList={}
对于tree.xpath中的塔(“/root/Towers/tower”):
大房间=[]
对于tower.xpath中的lr(“会议室/大型会议室/会议室”):
大型会议室。追加({lr.xpath(“MeetingRoomName”)[0]。文本:
lr.xpath(“MeetingRoomMailId”)[0].text})
roomList[tower.xpath(“TowerName”)[0].text]=大型房间
打印(房间列表)
XML输入(“Input.XML”)
6号楼
科尔塞姆
科尔塞姆邮政
蓝宝石
萨菲尔邮件
达佛迪尔斯
Dafodills_邮件
参议院
参议院议院
论坛
论坛邮件
珍珠
珍珠邮递
7号楼
第7卷
科勒塞姆•梅勒7
萨菲尔7
Saphire_mail7
水仙花
Dafodills_mail7
参议院第七院
参议院议院
论坛7
论坛邮箱7
珍珠7
珍珠邮递7
打印输出
{'Tower 6':[{'Colesseum':'Colesseum_mail'},{'Saphire':'Saphire_mail'},{'Dafodills':'Dafodills_mail'},'Tower 7':[{'Colesseum_mail'},{'Saphire7':'Saphire_mail'},{'Dafodills':'Dafodills':'Dafodills_Mails'}