xml.etree.ElementTree对CDATA的输出
时间: 2024-01-16 16:02:55 浏览: 308
Python3 xml.etree.ElementTree支持的XPath语法详解
在使用xml.etree.ElementTree输出CDATA时,需要注意以下几点:
1. 创建CDATA节点:使用Element对象的makeelement()方法,将节点类型设置为"CDATA",并将CDATA内容作为节点的文本内容赋值。
```python
import xml.etree.ElementTree as ET
root = ET.Element("root")
cdata = ET.Element("cdata")
cdata.text = "<![CDATA[ This is CDATA! ]]>"
root.append(cdata)
ET.dump(root)
```
输出结果:
```xml
<root>
<cdata><![CDATA[ This is CDATA! ]]></cdata>
</root>
```
2. 输出CDATA节点:使用xml.etree.ElementTree的tostring()方法输出XML字符串时,CDATA节点会自动被转义。
```python
import xml.etree.ElementTree as ET
root = ET.Element("root")
cdata = ET.Element("cdata")
cdata.text = "<![CDATA[ This is CDATA! ]]>"
root.append(cdata)
xml_string = ET.tostring(root, encoding="unicode")
print(xml_string)
```
输出结果:
```xml
<root>
<cdata><![CDATA[ This is CDATA! ]]></cdata>
</root>
```
因此,如果需要输出不被转义的CDATA节点,可以使用第三方库,如lxml库中的etree模块。
阅读全文