Python BeautifulSoup Won';t从XML返回标记
给定我的工作目录中名为test.XML的以下XML:Python BeautifulSoup Won';t从XML返回标记,python,xml,parsing,beautifulsoup,xml-parsing,Python,Xml,Parsing,Beautifulsoup,Xml Parsing,给定我的工作目录中名为test.XML的以下XML: <workbook> <style> <style-rule element='worksheet'> <format attr='font-family' value='Tahoma' /> <format attr='font-size' value='15' /> <for
<workbook>
<style>
<style-rule element='worksheet'>
<format attr='font-family' value='Tahoma' />
<format attr='font-size' value='15' />
<format attr='font-weight' value='bold' />
<format attr='color' value='#ffbe7d' />
</style-rule>
</style>
</workbook>
由于元素名中存在连字符,我知道使用find命令,并且在xml文件的其他连字符部分中成功地使用了该技术。但是,由于我不知道的某些原因,这个实例给了我一些问题。问题不是因为连字符,如果您尝试打印样式标记的内部文本,出于某种原因,您将获得字符串类型的样式规则 我的猜测是,样式标记通常包含在bs4中被视为字符串的内容中,但这里您将其用作html容器 解决方法:
from bs4 import BeautifulSoup
import os
soup = BeautifulSoup(text)
soup = BeautifulSoup(soup.find('style').text)
for format in soup.select('style-rule > format'):
print(format)
演示:
from bs4 import BeautifulSoup
import os
soup = BeautifulSoup(text)
soup = BeautifulSoup(soup.find('style').text)
for format in soup.select('style-rule > format'):
print(format)