|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有一XML文件,如下:
- <?xml version="1.0" encoding="utf-8"?>
- <catalog>
- <maxid>4</maxid>
- <login username="pytest" passwd='123456'>
- <caption>Python</caption>
- <item>ok</item>
- </login>
- <maxid>5</maxid>
- <login username="pytest" passwd='123456'>
- <caption>测试</caption>
- <item></item>
- </login>
- <maxid>6</maxid>
- <login username="pytest" passwd='123456'>
- <caption>测试用</caption>
- <item>okokok</item>
- </login>
- </catalog>
复制代码
python代码如下:
- from xml.dom.minidom import parse
- dom = parse('abc.xml')
- data = dom.documentElement
- stus = data.getElementsByTagName('login')
- for stu in stus:
- a = stu.getElementsByTagName('caption')[0].childNodes[0].nodeValue
- b = stu.getElementsByTagName('item')[0].childNodes[0].nodeValue
- print(a,b)
复制代码
运行后错误提示如下:
- b = stu.getElementsByTagName('item')[0].childNodes[0].nodeValue
- IndexError: list index out of range
复制代码
主要问题是因为 <item></item>中无值引起报错,请问:如何将这空值默认为0输出不报错?(不修改原始数据)
请前辈高手帮解决下。谢谢了!
本帖最后由 qq1151985918 于 2021-3-5 08:08 编辑
居然还要喂到嘴里不然就吃不了饭  - from xml.dom.minidom import parse
- dom = parse('abc.xml')
- data = dom.documentElement
- stus = data.getElementsByTagName('login')
- for stu in stus:
- try:
- a = stu.getElementsByTagName('caption')[0].childNodes[0].nodeValue
- except IndexError:
- a = None
-
- try:
- b = stu.getElementsByTagName('item')[0].childNodes[0].nodeValue
- except IndexError:
- b = None
- print(a,b)
复制代码
|
|