你可以使用 lxml
库来读取、修改 XML 文件中的某个标签的值,并将其保存为新的 XML 文件。以下是一个示例代码,展示如何获取当前的 UTC 时间,并将 XML 文件中的某个时间标签修改为当前时间。
示例代码:
from lxml import etree
from datetime import datetime
# 获取当前 UTC 时间
current_utc_time = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ")
# 解析 XML 文件
tree = etree.parse("input.xml")
root = tree.getroot()
# 查找需要修改的标签
# 假设你要修改的标签为 <TimeTag>,可以根据实际标签名替换
time_tag = root.find(".//TimeTag")
if time_tag is not None:
# 修改时间标签的值为当前 UTC 时间
time_tag.text = current_utc_time
# 将修改后的 XML 写入新文件
with open("output.xml", "wb") as file:
tree.write(file, pretty_print=True, xml_declaration=True, encoding="UTF-8")
print("时间标签已更新为当前 UTC 时间:", current_utc_time)
else:
print("未找到时间标签")
代码说明:
- 获取当前 UTC 时间 :使用
datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ")
格式化当前时间为标准的 ISO 8601 格式。 - 解析 XML 文件 :使用
lxml.etree.parse()
来解析输入的 XML 文件。 - 查找并修改时间标签 :通过
root.find()
方法找到 XML 中的<TimeTag>
标签,并将其内容更新为当前时间。 - 保存修改后的 XML 文件 :使用
tree.write()
将修改后的 XML 保存为新文件。
示例 XML 文件 (input.xml
):
xml
复制代码
<Root> <TimeTag>2023-10-15T12:34:56Z</TimeTag> </Root>
修改后的 XML 文件 (output.xml
):
xml
复制代码
<Root> <TimeTag>2024-10-17T08:12:45Z</TimeTag> </Root>
在这个例子中,你可以根据实际 XML 文件的结构和需要修改的标签名称调整代码中的 time_tag
查找逻辑。