如何解决如何使用python和BeautifulSoup更新xml文件
我可以看到这些值正在更新,但是当我检查XMl文件中的值是否显示原始值时,如何通过编辑更新原始XML文件或如何通过编辑创建新的XML文件。这是我在做什么
with open("C:/file/abcd.xml","r") as file_in:
content = file_in.read()
soup = bs(content,"xml")
loc = re.compile(r'[A-Z]+-+[0-9]+/+SM+-+[1-9]$')
for i in soup.find_all('managedOb',dist=loc):
locat=i.find('p',{'name':'modLoc'})
locat.string="U.S.A"
这是我的XML标签的示例:
原始
<managedOb dist="AKAS-85409/MNOP-85409/SM-1" operation="OPEN">
<p name="modLoc">India</p>
</managedOb >
改变我在做
<managedOb dist="AKAS-85409/MNOP-85409/SM-1" operation="OPEN">
<p name="modLoc">U.S.A</p>
</managedOb >
但是我无法保存更改或使用更改创建新文件。
解决方法
另一种方法
from simplified_scrapy import SimplifiedDoc,utils
# html = utils.getFileContent('C:/file/abcd.xml')
html = '''
<managedOb dist="AKAS-85409/MNOP-85409/SM-1" operation="OPEN">
<p name="modLoc">India</p>
</managedOb>
'''
doc = SimplifiedDoc(html)
managedObs = doc.getElementsByReg(r'dist="[A-Z]+-[0-9]+/+[A-Z]+-[0-9]+/SM+-+[1-9]"',tag='managedOb')
for i in managedObs:
locat = i.select('p@name=modLoc')
locat.setContent('U.S.A') # Edit text
utils.saveFile('C:/file/abcd_test.xml',doc.html)
结果:
<managedOb dist="AKAS-85409/MNOP-85409/SM-1" operation="OPEN">
<p name="modLoc">U.S.A</p>
</managedOb>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。