【问题标题】:Edit multiple xml files in different folders编辑不同文件夹中的多个xml文件
【发布时间】:2022-01-06 13:07:22
【问题描述】:

我正在尝试编辑不同目录中的两个 xml 文件。一个名为 test.xml 的文件位于 C:\Users\user\Desktop 中。另一个也称为 test.xml,位于 C:\Users\user\Desktop\test 中。我正在尝试更改它们的值。

import os
import xml.dom.minidom as md
for root, dirs, files in os.walk("C:\\Users\\user\\Desktop"):
    for file in files
        file = md.parse("test.xml")
        file.getElementsByTagName("size")[0].childNodes[0].nodeValue="Large"
        file.getElementsByTagName("weight")[0].childNodes[0].nodeValue="30oz"
    with open("test.xml", "w") as fs:
        fs.write(file.toxml())
        fs.close()

这只会编辑第一个文件,但不会编辑其他文件。这是他们两个的 XML,如果有帮助的话。

C:\Users\user\Desktop 中的test.xml

<?xml version="1.0"?>
<food_list>
    <fruit>
        <name>Strawberry</name>
        <size>Medium</size>
        <weight>19oz</weight>
        <id>S001</id>
    </fruit>
</food_list>

C:\Users\user\Desktop\test 中的test.xml

<?xml version="1.0"?>
<food_list>
    <fruit>
        <name>Apple</name>
        <size>Small</size>
        <weight>19oz</weight>
        <id>A001</id>
    </fruit>
</food_list>

我该怎么做才能编辑这两个文件?我真的被困在这里,所以任何帮助都将不胜感激。

【问题讨论】:

  • 似乎是“我如何os.walk() 进入子文件夹”问题,而不是 XML 问题? (试金石:当你取出 XML 部分时,问题是否会改变?如果没有,请研究基础问题。)
  • @Tomalak 不知道他的错误完全在xml部分之外。因为为了知道它,它必须知道错误。

标签: python xml


【解决方案1】:

首先:您确实缩进错误。 “开放”的东西必须是一个更深的缩进,所以它也会被迭代。 第二:您只是使用“test.xml”作为文件名,而不是您的 os.walk 调用的结果。

import os
import xml.dom.minidom as md
for root, dirs, files in os.walk("C:\\Users\\user\\Desktop"):
    for filename in files
        if filename.endswith(".xml")
            file = md.parse(root+"\\"+filename)
            file.getElementsByTagName("size")[0].childNodes[0].nodeValue="Large"
            file.getElementsByTagName("weight")[0].childNodes[0].nodeValue="30oz"
            with open(root+"\\"+filename, "w") as fs:
                fs.write(file.toxml())
                fs.close()

您所做的是为所有文件创建“文件”,但只保存最后一个

【讨论】:

  • 对不起,我没有完全得到目标文件名。也必须是 root+"\\"(已编辑)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
相关资源
最近更新 更多