Skip to main content
 首页 » 编程设计

python之使用 CDATA 获取元素的文本

2025年05月04日20freeliver54

比如说,我有一个元素:

>>> el = etree.XML('<tag><![CDATA[content]]></tag>') 
>>> el.text 
'content' 

我想得到的是<![CDATA[content]]> .我该怎么做?

请您参考如下方法:

当您执行 el.text 时,它总是会为您提供纯文本 content。

要查看序列化元素,请尝试使用 tostring():

el = etree.XML('<tag><![CDATA[content]]></tag>') 
print(etree.tostring(el).decode()) 

这将打印:

<tag>content</tag> 

要保留 CDATA,您需要使用 XMLParser()与 strip_cdata=False :

parser = etree.XMLParser(strip_cdata=False) 
 
el = etree.XML('<tag><![CDATA[content]]></tag>', parser=parser) 
print(etree.tostring(el).decode()) 

这将打印:

<tag><![CDATA[content]]></tag> 

这应该足以满足您的“我想确保在测试中内容包含在 CDATA 中”的要求。