用Python解决XML问题

2024-04-26 14:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量信息和标记的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")   

这个程序没有按正确的方式工作。有什么帮助或想法吗? 谢谢!你知道吗


Tags: 标记importtree节点type标签xmldocument
1条回答
网友
1楼 · 发布于 2024-04-26 14:25:05

如果DestName属性为空,则从不检查。如果将第一个for循环替换为以下内容,则应该得到所需的结果:

for SelectListMap in root.iter('SelectListMap'):
    if SelectListMap.get("DestName") == "":
        SourceName = SelectListMap.get("SourceName")
        SelectListMap.set("DestName", SourceName)

相关问题 更多 >