我想我错过了一些基本的东西。我想访问XML元素的文本并替换它。例如,如果我有这个:
<name>Fred</name>
我希望能够将Fred
更改为John
我已经阅读了很多关于ElementTree和BeautifulSoup的网站,但我仍然被困住了。有人可以提供一个非常简单的例子吗?
答案 0 :(得分:1)
喜欢这个吗?
使用BeautifulSoup的soup.find()
方法查找HTML标记:
>>> from bs4 import BeautifulSoup
>>> BeautifulSoup('<html><body><name>Fred</name><html><body>')
>>> soup = BeautifulSoup('<html><body><name>Fred</name><html><body>')
>>> name = soup.find('name')
>>> name
<name>Fred</name>
>>>
使用tag.string = newstring
替换它的字符串:
>>> name.string = 'John'
>>> name
<name>John</name>
>>> soup
<html><body><name>John</name><html><body></body></html></body></html>
>>>
然后我们完成了,请查看the document了解更多详情。
答案 1 :(得分:1)
python2.7版美丽的汤
from BeautifulSoup import BeautifulSoup
soup=BeautifulSoup("<name>Fred</name>")
soup.find("name").string="John"
print(soup)
输出
<name>John</name>
替代使用正则表达式
import re
htmltext="<name>John</name>"
new_htmltext=re.sub("(<name>).*(</name>)","\\1Fred\\2",htmltext)
print(new_htmltext)
答案 2 :(得分:0)
为什么不将它解析为文本?数据的格式并不总是需要使用特殊的库来处理它。
>>> a = 'stuff<name>Fred</name>otherstuff'
>>> a.replace('<name>Fred</name>', '<name>John</name>')
'stuff<name>John</name>otherstuff'