我有一个包含很多信息和标签的xml文件。 例如,我有这个标签:
<SelectListMap SourceName="Document Type" SourceNumber="43" DestName="Document Type" DestNumber="43"/>
我还有其他40个这样的标签,它们具有相同的节点,但是这些节点的值在每个标签中都不相同。 SourceName和DestName具有相同的值。
在某些标记中,DestName值像这样是空的:
<SelectListMap SourceName="Boolean Values" SourceNumber="73" DestName="" DestNumber="0" IsInternal="True"/>
因此,我正在尝试为空的DestName提供Sourcename的值。
这是我的Python代码:
import re
import xml.etree.ElementTree as ET
tree = ET.parse("SPPID04A_BG3 - Copy - Copy.xml")
root = tree.getroot()
for SelectListMap in root.iter('SelectListMap'):
#DestName.text = str(DestName)
for node in tree.iter('SelectListMap'):
SourceName = node.attrib.get('SourceName')
SelectListMap.set('DestName', SourceName)
tree.write("SPPID04A_BG3 - Copy - Copy.xml")
该程序无法正确运行。有什么帮助或想法吗? 谢谢!
答案 0 :(得分:2)
您永远不会检查DestName
属性是否为空。如果将以下第一个for循环替换为以下内容,则应获得所需的内容:
for SelectListMap in root.iter('SelectListMap'):
if SelectListMap.get("DestName") == "":
SourceName = SelectListMap.get("SourceName")
SelectListMap.set("DestName", SourceName)