为了账号安全,请及时绑定邮箱和手机立即绑定

如何用列表中的值替换 XML 值

如何用列表中的值替换 XML 值

SMILET 2023-02-15 15:55:12
我正在尝试使用 python 列表中的新开始时间更新 XML 文件中的开始时间。这是 XML 的示例(列表中有 9 个订单)    <ppr:Group name="Order lists">        <ppr:ProductionProgram ppr:id="1">         <ppr:name>firmOrders</ppr:name>         <ppr:Order ppr:id="1|19077013">            <ppr:number>M742019552</ppr:number>            <ppr:startTime>2019-10-28T06:45:00</ppr:startTime>            <ppr:property name="Line code" value="G" metadata="true" />            <ppr:modelRef refBy="pprId">M1|19077013</ppr:modelRef>         </ppr:Order>我有一个新开始时间的列表    newtimes = ['2020-03-16T08:00:02', '2020-03-16T08:00:03'] ect...我知道如何使用 xml 开始时间值,    for x in productionprogram.iter('{http://ManHub.PPRData}startTime'):        x.text = 只是不确定将其设置为什么=...按顺序用“newtimes”替换值的东西
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

您的问题与其说是关于如何“替换 XML 值”,不如说是关于如何“跟踪”您在循环内迭代了多少次。

你想要的是enumerate()

让我们用一个简单的例子来试试看。

我有一个包含星期几及其名称的文件,名为week.xml

<week>

    <day>

        <name>Monday</name>

    </day>

    <day>

        <name>Tuesday</name>

    </day>

    <day>

        <name>Wednesday</name>

    </day>

    <day>

        <name>Thursday</name>

    </day>

    <day>

        <name>Friday</name>

    </day>

    <day>

        <name>Saturday</name>

    </day>

    <day>

        <name>Sunday</name>

    </day>

</week>

让我们使用值列表替换它们的名称:


import xml.etree.ElementTree as ET

tree = ET.parse('week.xml')

root = tree.getroot()


short_days = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']

for idx, day in enumerate(root.findall("day")):

    day.find("name").text = short_days[idx]


tree.write("short_week.xml")

这是名为short_week.xml的新文件:


<week>

    <day>

        <name>MON</name>

    </day>

    <day>

        <name>TUE</name>

    </day>

    <day>

        <name>WED</name>

    </day>

    <day>

        <name>THU</name>

    </day>

    <day>

        <name>FRI</name>

    </day>

    <day>

        <name>SAT</name>

    </day>

    <day>

        <name>SUN</name>

    </day>

</week>


查看完整回答
反对 回复 2023-02-15
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号