python写xml文件_python写xml文件

为了便于后续的读取处理,这里就将信息保存在xml文件中,想到得到的文件如下:

copycode.gif

1 <?xml version="1.0" encoding="utf-8"?>

2

3

4 姓名1

5 电话1

6

地址1

7 点餐次数1

8

9

10 姓名2

11 电话2

12

地址2

13 点餐次数2

14

15

copycode.gif

Python写xml比较简单,直接使用minidom即可。

思路也比较简单,因为dom文档就是一棵树,每一个标签都是一个节点,包括文本内容也是节点,因此从根节点开始,把节点一级一级的插入即可。

在上一篇中已经将抓取的信息存入了字典orderDict中,这里我们直接在类Order中添加一个方法,将orderDict里面的每一项信息插入DOM树,然后再写入本地xml文件。

由于比较简单,直接给出代码:

copycode.gif

1 from xml.dom.minidom import Document

2 # 将self.orderDict中的信息写入本地xml文件,参数filename是xml文件名

3 def writeInfoToXml(self, filename):

4 # 创建dom文档

5 doc = Document()

6

7 # 创建根节点

8 orderlist = doc.createElement('orderlist')

9 # 根节点插入dom树

10 doc.appendChild(orderlist)

11

12 # 依次将orderDict中的每一组元素提取出来,创建对应节点并插入dom树

13 for (k, v) in self.orderDict.iteritems():

14 # 分离出姓名,电话,地址,点餐次数

15 (name, tel, addr, cnt) = (v[0], k, v[1], v[2])

16

17 # 每一组信息先创建节点,然后插入到父节点下

18 order = doc.createElement('order')

19 orderlist.appendChild(order)

20

21 # 将姓名插入中

22 # 创建节点

23 customer = doc.createElement('customer')

24 # 创建下的文本节点

25 customer_text = doc.createTextNode(name)

26 # 将文本节点插入到下

27 customer.appendChild(customer_text)

28 # 将插入到父节点下

29 order.appendChild(customer)

30

31 # 将电话插入中,处理同上

32 phone = doc.createElement('phone')

33 phone_text = doc.createTextNode(tel)

34 phone.appendChild(phone_text)

35 order.appendChild(phone)

36

37 # 将地址插入中,处理同上

38 address = doc.createElement('address')

39 address_text = doc.createTextNode(addr)

40 address.appendChild(address_text)

41 order.appendChild(address)

42

43 # 将点餐次数插入中,处理同上

44 count = doc.createElement('count')

45 count_text = doc.createTextNode(str(cnt))

46 count.appendChild(count_text)

47 order.appendChild(count)

48

49 # 将dom对象写入本地xml文件

50 with open(filename, 'w') as f:

51 f.write(doc.toprettyxml(indent='\t', encoding='utf-8'))

52

53 return

copycode.gif

在先调用getAllOrders方法之后,再调用writeInfoToXml即可将所有信息写入xml文件中。

如下是给节点设置属性的:

1030588-20161211224436382-542591777.png

chapter.setAttribute('number', '1')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值