【发布时间】:2016-01-29 16:20:31
【问题描述】:
我正在尝试使用 xmltodict 将 XML 内容作为 python 对象进行操作,但我遇到了正确处理 CDATA 的问题。我想我在某处遗漏了一些东西,这是我的代码:
import xmltodict
data = """<node1>
<node2 id='test'><![CDATA[test]]></node2>
<node3 id='test'>test</node3>
</node1>"""
data = xmltodict.parse(data,force_cdata=True, encoding='utf-8')
print data
print xmltodict.unparse(data, pretty=True)
这是输出:
OrderedDict([(u'node1', OrderedDict([(u'node2', OrderedDict([(u'@id', u'test'), ('#text', u'test')])), (u'node3', OrderedDict([(u'@id', u'test'), ('#text', u'test')]))]))])
<?xml version="1.0" encoding="utf-8"?>
<node1>
<node2 id="test">test</node2>
<node3 id="test">test</node3>
</node1>
在这里我们可以看到生成的node2中缺少CDATA,并且node2与node3相同。但是,在输入中的节点是不同的。
问候
【问题讨论】:
-
你见过the closed issue这个吗?