如何在xml中搜索键并替换它';Python有什么价值?

如何在xml中搜索键并替换它';Python有什么价值?,python,xml,string,Python,Xml,String,我在一个xml文件中有数千行这样的应用程序名称: <app name="app-sq-461-author-core-0"> 最好的方法是什么?我遇到了很多问题。你试过了吗? 类似这样的东西 import bs4 xml = "Your bare XML String" soup = bs4.BeautifulSoup(xml) test_apps = soup.findChildren("app", {"name": "test"}) for app in test_apps:

我在一个xml文件中有数千行这样的应用程序名称:

<app name="app-sq-461-author-core-0">
最好的方法是什么?我遇到了很多问题。

你试过了吗? 类似这样的东西

import bs4

xml = "Your bare XML String"
soup = bs4.BeautifulSoup(xml)
test_apps = soup.findChildren("app", {"name": "test"})
for app in test_apps:
    app["name"] = "delete me"

with open("filename.xml", "w") as f:
    f.write(str(soup))
但是,正如您在下面的评论中提到的,您没有bs4,我唯一能想到的就是使用正则表达式替换

import re

xml = "your XML String"
pattern = re.compile('app name="test"')
replaced = pattern.sub('app name="delete me"', xml)
sed's///g'file.xml.new
mv file.xml file.xml.old
mv file.xml.new file.xml

是的,我真的很想改用靓汤,问题是我的工作地点是否得到批准。所以现在,我不能用它。你怎么知道,那个op有一台*nix机器?我没有。命令语法应该足够相似,不是吗?即使op的机器根本没有sed,操作的意图也是明确的。
import re

xml = "your XML String"
pattern = re.compile('app name="test"')
replaced = pattern.sub('app name="delete me"', xml)
sed 's/<app name="foo">/<app name="bar">/g' < file.xml > file.xml.new
mv file.xml file.xml.old
mv file.xml.new file.xml