程序无法在文件中找到xml数据

时间:2017-07-24 20:33:10

标签: python xml

我的代码(Python3)应该打印COLOR:Red│。当我运行它时,它不会给我一个错误信息,它不会打印任何东西。这是我的代码,下面是数据所在的xml文件:

import os, csv
from xml.etree import ElementTree

file_name = 'data.xml'
full_file = os.path.abspath(os.path.join('xml', file_name))
dom = ElementTree.parse(full_file)

attri = dom.findall('attribute')
lst = []

for c in attri:
    name = c.find('name').text
    value = c.find('value').text
    lst = (name + ':' + value)
    print(lst, end = "│") 



<?xml version="1.0"?>
<all>
<items>
<item>
<attributes>
<attribute>
<name>COLOR</name>
<value>Red</value>
</attributes>
</attribute>
</item>
</items>
</all>

1 个答案:

答案 0 :(得分:1)

attri = dom.findall('attribute')没有返回结果。

标题为Finding interesting elements的文档部分指出

  

Element.findall()仅查找带有标记的元素,这些元素是当前元素的直接子元素。

但那

  

使用XPath可以查找要查找的元素的更复杂的规范。

最简单的解决方法是将代码更改为

for c in dom.findall('.//attribute'):
    name = c.find('.//name').text
    value = c.find('.//value').text
    print(name + ':' + value, end="│")

有关详细信息,请参阅Supported XPath syntax