我是python的新手并且一直在努力完成某些事情,到目前为止并没有成功。我正在尝试打开一个xml,删除整个标签及其内容,并在xml中移动其他标签。
这是我原来的导入xml:
<?xml version="1.0" encoding="UTF-8"?>
<package>
<language>en-GB</language>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<copyright_cline>2012 copyright</copyright_cline>
<release_date>2012-04-23</release_date>
<title>Amazing Film</title>
</video>
<provider>testprovider</provider>
</package>
我需要删除<copyright_cline>
代码和<title>
代码。然后,我需要将<provider>
代码移到<video>
代码中,并将其放在<original_spoken_locale>
和<release_date>
代码之间。
以下是导出的xml:
<?xml version="1.0" encoding="UTF-8"?>
<package>
<language>en-GB</language>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<provider>testprovider</provider>
<release_date>2012-04-23</release_date>
</video>
</package>
我尝试了各种解决方案,没有任何我完全工作。
我喜欢xml.etree
模块,我也尝试安装lxml
,但无法安装它,所以想要使用不需要安装的模块。我正在使用python 3.3.2.
虽然这个网站是一个惊人的信息来源,但我的知识还不足以解决它。真正有用的是一个示例工作代码,然后我可以研究并希望理解。 非常感谢。
答案 0 :(得分:0)
from bs4 import BeautifulSoup
xml = """<?xml version="1.0" encoding="UTF-8"?>
<package>
<language>en-GB</language>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<copyright_cline>2012 copyright</copyright_cline>
<release_date>2012-04-23</release_date>
<title>Amazing Film</title>
</video>
<provider>testprovider</provider>
</package>"""
soup = BeautifulSoup(xml, 'xml')
soup.copyright_cline.replace_with(soup.provider)
soup.title.extract()
print soup
打印:
<?xml version="1.0" encoding="utf-8"?>
<package>
<language>en-GB</language>
<video>
<original_spoken_locale>en-US</original_spoken_locale>
<provider>testprovider</provider>
<release_date>2012-04-23</release_date>
</video>
</package>
我不明白为什么你无法安装lxml
模块,但安装BeautifulSoup
只是做一个简单的pip install bs4
或download it manually