Weh*_*olt 3 python xml parsing beautifulsoup
from BeautifulSoup import BeautifulStoneSoup
xml_data = """
<doc>
<test>test</test>
<foo:bar>Hello world!</foo:bar>
</doc>
"""
soup = BeautifulStoneSoup(xml_data)
print soup.prettify()
make = soup.find('foo:bar')
print make
# prints <foo:bar>Hello world!</foo:bar>
make.contents = ['Top of the world Ma!']
print make
# prints <foo:bar></foo:bar>
Run Code Online (Sandbox Code Playgroud)
如何更改元素的内容,在这种情况下是变量"make"中的元素,而不会丢失内容?如果您能指出我可以修改现有xml文档的其他纯python模块,请告诉我.
PS!BeautifulSoup非常适合HTML和XML的屏幕分析和解析!
Pao*_*ino 10
查看文档replaceWith.这有效:
make.contents[0].replaceWith('Top of the world Ma!')
Run Code Online (Sandbox Code Playgroud)
使用 BeautifulSoup 版本 4 ( ),您可以通过直接更新属性bs4来实现相同的目的:string
from bs4 import BeautifulSoup
xml_data = """
<doc>
<test>test</test>
<foo:bar>Hello world!</foo:bar>
<parent>Hello <child>world!</child></parent>
</doc>
"""
soup = BeautifulSoup(xml_data)
make = soup.find('foo:bar')
make.string = 'Top of the world Ma!'
print make
# prints <foo:bar>Top of the world Ma!</foo:bar>
Run Code Online (Sandbox Code Playgroud)
这种方法非常适合元素包含其他元素并且您想要用新元素替换整个内容的情况:
parent = soup.find('parent')
parent.string = 'Top of the world Ma!'
print parent
# prints <parent>Top of the world Ma!</parent>
Run Code Online (Sandbox Code Playgroud)
我刚才遇到了这个相当老的问题,并且提供的解决方案不太适合我。进一步的研究使我想到了上述方法,我认为分享我最终在这里使用的方法可能有用。
| 归档时间: |
|
| 查看次数: |
4937 次 |
| 最近记录: |