说,我有一个要素:
>>> 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/