Python元素树子级

2024-10-04 07:34:05 发布

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

是否有一种方法可以结束每个设置节点,而不是在结束时进行?额外的/设置/设置/设置结束标签是我想要摆脱的。我使用set,但有些东西告诉我应该使用append或其他东西来添加额外的设置名称,而不是创建set的子元素。你知道吗

The code is generating:(I want to remove the /Setting/Setting/Setting?)
Payload returned = <
update_app_profile odpApiToken="6b" odpCmd="save" odpExt="6629" odpUser="profileApiUser">
<dynamicsettings>
    <Group Name="BASE">
        <Setting Name="CTInt" Value="44">
        <Setting Name="CTTime" Value="11:11:11">
        <Setting Name="CTList" Value="Half-Life 2">
        <Setting Name="Regexp_Base" Value="STR1">
        <Setting Name="CTDate" Value="2016-01-01">
        <Setting Name="CTString" Value="qwe" />
        </Setting></Setting></Setting></Setting></Setting>
     </Group>
  </dynamicsettings>
</update_app_profile>



def create_post_request(self, odpExt, odpCmd, dict):
    '''
    <?xml version="1.0"? encoding="UTF-8">
    <update_app_profile odpCmd="save" odpUser="sgoel" odpPwd="sgoel123" odpExt="8114">
      <dynamicsettings>
        <Group Name="ApplicationParameters">
            <Setting Name="CTTemp1" Value="12"/>
            <Setting Name="CTTemp2" Value="test1"/>
        </Group>
      </dynamicsettings>
    </update_app_profile>
    '''
    dict = {'.//CTDate':'2016-01-01', './/CTString': 'qwe', './/Regexp_Base': 'STR1', './/CTTime': '11:11:11', './/CTInt': '44', './/CTList': 'Half-Life 2'}
    root = ET.Element("update_app_profile")
    root.set("odpCmd", odpCmd)
    root.set("odpExt", odpExt)
    root.set("odpUser", "profileApiUser")
    root.set("odpApiToken", "6b")

    tree= ET.SubElement(root,"dynamicsettings")
    #tree.set("Group Name", "Group1")
    tree = ET.SubElement(tree, "Group")
    tree.set("Name","BASE" )
    #tree = ET.SubElement(tree, "Setting")

    #tree.append("Setting")


    for item, value in dict.iteritems():
        print item + value
        tree = ET.SubElement(tree, "Setting")
        tree.set("Name", item[3:])
        tree.set("Value", value)

    #tree.set("ApplicationParameters")

    return ET.tostring(root)

Tags: nametreeappvaluegroupupdaterootprofile
1条回答
网友
1楼 · 发布于 2024-10-04 07:34:05

替换:

tree = ET.SubElement(tree, "Setting")
tree.set("Name", item[3:])
tree.set("Value", value)

使用:

setting = ET.SubElement(tree, "Setting")
setting.set("Name", item[3:])
setting.set("Value", value)

然后这些设置都将是一个tree的子元素。你知道吗

相关问题 更多 >