How can I check the existence of attributes and tags in XML before parsing?
我正在通过python中的元素树分析XML文件,并将内容写入cpp文件。
子标记的内容将因不同的标记而异。例如,第一个事件标记的party标记为child,而第二个事件标记没有。
-->如何在分析之前检查标记是否存在?
-->children在第一个事件标记中有value属性,但在第二个事件标记中没有。在获取属性值之前,如何检查该属性是否存在。
->当前,我的代码为不存在的参与方标记引发错误,并为第二个子标记设置"无"属性值。
1 2 3 4 5 6 7 8 9 10 11 | <main> <event> <party>Big</party> <children type="me" value="3"/> </event> <event> <children type="me"/> </event> </main> |
代码:
1 2 3 4 5 6 | import xml.etree.ElementTree as ET tree = ET.parse('party.xml') root = tree.getroot() for event in root.findall('event'): parties = event.find('party').text children = event.get('value') |
我想检查标签,然后取它们的值。
如果一个标记不存在,那么
1 2 3 4 5 6 | for event in root.findall('event'): party = event.find('party') if party is None: continue parties = party.text children = event.get('value') |
您已经在事件上使用
属性存储在
1 2 | if 'value' in event.attrib: # value attribute is present. |