【发布时间】:2019-03-13 12:05:23
【问题描述】:
我正在尝试像这样将此文本值写入 XML 标记
<Parameter name="name"><![CDATA[xyzvalue]]></Parameter>
每当我将此值设置为该标签的文本时。它像这样生成它
<Parameter name="name"><![CDATA[xyzvalue]]></Parameter>
我需要尽量避免代码中出现转义字符
ET.SubElement(parameters, "Parameter", name="id").text = unescape("<![CDATA[xyzvalue]]>")
如何避免它像这样写入 xml 文件?我需要避免在 XML 中转义字符。
这是我的完整代码:
map = ET.Element("Map")
parameters = ET.SubElement(map, "Parameters")
ET.SubElement(parameters, "Parameter", name="bounds").text = "-180,-85.05112877980659,180,85.05112877980659"
ET.SubElement(parameters, "Parameter", name="center").text = "0,0,2"
ET.SubElement(parameters, "Parameter", name="format").text = "png"
ET.SubElement(parameters, "Parameter", name="minzoom").text = "0"
ET.SubElement(parameters, "Parameter", name="maxzoom").text = "22"
ET.SubElement(parameters, "Parameter", name="scale").text = "1"
ET.SubElement(parameters, "Parameter", name="metatile").text = "2"
ET.SubElement(parameters, "Parameter", name="id").text = unescape("<![CDATA[xyzvalue]]>")
ET.SubElement(parameters, "Parameter", name="_updated").text = "1552288036000"
ET.SubElement(parameters, "Parameter", name="name").text = "<![CDATA[xyzvalue]]>"
ET.SubElement(parameters, "Parameter", name="tilejson").text = "<![CDATA[2.0.0]]>"
ET.SubElement(parameters, "Parameter", name="scheme").text = "<![CDATA[xyz]]>"
indent(map)
tree = ET.ElementTree(map)
tree.write("plotfinder_tiles.xml", xml_declaration=True, encoding='utf-8', method="xml")
这与How to output CDATA using ElementTree 不同,在某种程度上,我在创建元素时遇到了这个问题,不能在创建 xml 后美化/删除。
【问题讨论】:
-
显示您的代码。
-
查看更新后的问题
-
不熟悉您使用的库,但您可能需要设置 HTML 属性而不是文本。
-
我用 .html 尝试过,这是错误:AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'html'
标签: python xml python-2.7 elementtree