【发布时间】:2015-01-29 10:14:23
【问题描述】:
我正在尝试将 CDATA 添加到 XML 的子元素中。但是 XML 不断将< 字符转换为<。
我在这里读到了some posts,它对 CDATA 做了一些事情,但我不敢相信让它工作这么难。除此之外,我无法让这些示例正常工作。
下面是我使用 python 3.4 简化的部分代码。
将 xml.etree.cElementTree 导入为 ET 从 xml.dom 导入 minidom
class MyClass():
def __init__(self):
self.xml = None
def generateXML(self):
self.xml = ET.Element("AVXML")
row = ET.SubElement(self.xml, "ROW")
ET.SubElement(row, "DATA").text = "<![CDATA[ <ART_HDR.COMMENT1>.PDF ]]>"
def saveXML(self):
rough_string = ET.tostring(self.xml, 'Windows-1252')
reparsed = minidom.parseString(rough_string)
prettyxml = reparsed.toprettyxml(indent=" ", encoding="Windows-1252")
print(prettyxml)
f = open("filetosave.xml", "wb")
f.write(prettyxml)
f.close()
m = MyClass()
m.generateXML()
m.saveXML()
然而这会产生:
<DATA><![CDATA[ <ART_HDR.COMMENT1>.PDF ]]></DATA>
代替
<DATA><![CDATA[ <ART_HDR.COMMENT1>.PDF ]]></DATA>
【问题讨论】: