我的代码(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>
答案 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。