当前位置: 首页 > 面试题库 >

如何在python中更新/修改XML文件?

能向晨
2023-03-14
问题内容

我有一个XML文档,在它已经包含数据之后,我想对其进行更新。

我考虑过要在"a"(附加)模式下打开XML文件。问题在于新数据将在根结束标记之后写入。

如何删除文件的最后一行,然后从该点开始写入数据,然后关闭根标签

当然,我可以读取整个文件并进行一些字符串操作,但是我认为这不是最好的主意。

谢谢你的时间。


问题答案:

您绝对 不应该做
的快速简便的方法(请参阅下文)是使用来将整个文件读入字符串列表readlines()。我写这篇文章的目的是为了找到您所需要的快速简便的解决方案。

只需使用打开文件open(),然后调用readlines()方法即可。您将获得文件中所有字符串的列表。现在,您可以轻松地在最后一个元素之前添加字符串(只需将最后一个元素之前的元素添加到列表中)。最后,您可以使用将它们写回到文件中writelines()

一个示例可能会有所帮助:

my_file = open(filename, "r")
lines_of_file = my_file.readlines()
lines_of_file.insert(-1, "This line is added one before the last line")
my_file.writelines(lines_of_file)

您不应该这样做的原因是,除非您做得非常快,否则您应该使用XML解析器。这是一个库,可让您使用DOM,树和节点等概念来智能地使用XML。这不仅是使用XML的正确方法,还是标准的方法,使您的代码更加可移植,并易于其他程序员理解。

蒂姆的答案提到xml.dom.minidom为此目的进行检查,我认为这是个好主意。



 类似资料:
  • 问题内容: 我有一个xml文件,调用data.xml就像下面的代码。该项目可以从客户端运行,没有问题,它可以读取xml文件。我现在遇到的问题是我想编写一个可以更新开始日期和结束日期的函数。我不知道如何开始。帮助将不胜感激。 我的main.java 问题答案: 首先加载XML文件… 现在,有几种方法可以执行此操作,但简单来说,您可以使用xpath API查找所需的节点并更新其内容 然后保存回文件…

  • 问题内容: 我正在使用Python,并且想在不删除或复制文件的情况下将字符串插入文本文件。我怎样才能做到这一点? 问题答案: 取决于你要做什么。要附加,可以用打开它: 如果要先添加某些内容,则必须先从文件中读取:

  • 问题内容: 我想根据以下条件在PHP中修改我的xml文件。 我的xml结构如下所示: 现在每次在xml进行修改时,都带有type属性。 意味着,第一次搜索字符串==“ hotels”时,与酒店有关的数据将以上述格式存储在xml文件中。 现在,当再次搜索酒店时,它将删除具有带有值酒店的子元素的元素。 然后在与学校相关的数据附加到xml文件时,进行针对学校的不同查询。与酒店的数据。 现在再次搜索学校已

  • 问题内容: 我想我的调用或当我指定一个文件被修改浏览器。修改文件后,我该如何“观看”该文件以执行某些操作? 以编程方式看来,这些步骤是..基本上每秒设置一个永无休止的间隔,并缓存初始修改日期,然后每当更改一次调用X时便比较该日期。 问题答案: 如前所述,您可以使用pyinotify: 例如: 这比轮询更有效。内核会告诉您何时进行操作,而无需您不断询问。

  • 问题内容: 环顾四周,但找不到一个示例。没有解释文档,我无法弄清楚。 如何修改文件(例如,README.md),为修改后的文件创建提交,然后将提交推送到服务器? Nodegit:http ://www.nodegit.org/ Nodegit文档:http ://www.nodegit.org/nodegit 问题答案: 有一个示例,说明如何在其存储库上创建/添加和提交,可以帮助您修改文件。 ht

  • 我正在尝试创建一个网站地图。通过开箱即用的方式复制我的网站开箱即用的存储中提供的ImpEx,为我的Hybris网站创建xml。弹劾。 如何在Hybris Sitemap XML中更改本地主机URL 网站地图。运行cronjob后生成的xml由多个标记组成,这些标记依次包含不同站点地图页面类型的位置。在产品和类别中,大多数产品和类别都是可见的,但这里的问题是它们是从localhost开始的。这种行为