我正在使用 Python 的 xml minidom,除了在文本序列中它写出"
转义字符而不是"
. 如果引用出现在标签中,这当然是有道理的,但它在文本中让我感到不安。我该如何改变?
问问题
2202 次
1 回答
5
查看源代码(如果重要,Python 3.2),这是在 _write_data() 函数中硬编码的。您将需要修改 TextNode 的 writexml() 方法 - 通过子类化或简单地编辑它 - 以便它不调用该方法,而是执行类似于仅转义 < 和 > 的操作。
如果您在包之外创建了一个子类(而不是复制和破解包以制作您自己的自定义 xmlminidom),那么看起来,只要稍加注意,您就可以使事情正常进行。因此,您将创建自己的(子类)TextNode,按上述方式进行修改,然后将文本添加到 DOM,您将添加新类的实例(或用该类的实例替换现有文本节点)。您需要设置 ownerDocument 属性。也许最简单的方法是继承 Document 并修复 createTextNode() 方法。
但我没有看到更简单的方法来做你想做的事。最好使用更好的 dom 实现。
ps我不知道xml规范是否需要这种行为。更新:快速浏览http://www.w3.org/TR/2008/REC-xml-20081126/#syntax表明只有 < 和 &必须被编码。
于 2011-08-11T18:53:50.980 回答