我在xml文件中有数千个这样的应用程序名称行:
<app name="app-sq-461-author-core-0">
我想做以下事情:
目前,我有:
bare = importedxml.find('app name')
testvalue = bare.split("=")[1]
if testvalue = "test" in importedxml:
testvalue = "delete me"
最好的方法是什么?我遇到了很多问题。
答案 0 :(得分:2)
你试过BeautifulSoup吗? 沿着这些方向的东西
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)
答案 1 :(得分:0)
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