说,我有一个要素:

>>> 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中”的要求。

关于python - 使用CDATA获取元素的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56653466/

10-15 23:00