У меня есть XML, который я обрабатываю, в котором я использую BeautifulSoup в качестве синтаксического анализатора. Я вытаскиваю CDATA со следующим кодом, но мне нужны только данные, а не CDATA TAGS.Как удалить теги CDATA, но сохранить фактические данные в Python, используя LXML или BeautifulSoup
myXML = open("c:\myfile.xml", "r")
soup = BeautifulSoup(myXML)
data = soup.find(text=re.compile("CDATA"))
print data
<![CDATA[TEST DATA]]>
То, что я хотел бы видеть, если следующий вывод:
TEST DATA
меня не волнует, если решение в LXML или BeautifulSoup. Просто хочу, чтобы лучший или простой способ получить работу. Благодаря!
Вот решение:
parser = etree.XMLParser(strip_cdata=False)
root = etree.parse(self.param1, parser)
data = root.findall('./config/script')
for item in data: # iterate through list to find text contained in elements containing CDATA
print item.text
См. Http://stackoverflow.com/questions/2032172/how-can-i-grab-cdata-out-of-beautifulsoup. – alecxe
Только то, что я искал. Это тоже хорошо. – user2643864