【问题标题】:python minidom doesn't print out double quotes in the xmlpython minidom不会在xml中打印出双引号
【发布时间】:2014-04-18 23:55:21
【问题描述】:

我正在使用 minidom,它工作正常,除了打印 " 而不是打印“。我发现 this question 询问相同问题的解决方案,但没有人提到任何好的解决方案,而且问题早于 2年。因此,我想看看是否有人知道解决此问题的任何新机制。我目前针对此问题的解决方法是:

fw = open(fileFullPath, 'w')
dom.writexml(fw)
fw.close()
fw = open(fileFullPath, "r")
text = fw.read()
fw.close()
text = text.replace(""","\"")
fw = open(fileFullPath, "w")
fw.write(text)
fw.close()

edit:我有这个问题,因为我的代码只是一个 xml 编写器。我不确定是否总是使用 xml 阅读器读取它。因此 " 的存在非常重要。

【问题讨论】:

    标签: python xml minidom


    【解决方案1】:

    " 是一个 xml 文字 - 它被故意替换,以保持 xml 有效。它还应该转义 ><& 等内容。别担心,当您使用 minidom(或任何其他 xml 阅读器)并获取值时,您的双引号会回来 - 就是这样xml 转义的重点....

    【讨论】:

    • 这就是问题所在。我只是 xml 的编写者,我无法确定它会通过 xml 阅读器读取。
    • 我不确定它还能如何阅读,但您链接到的帖子暗示 xml 规范不一定要求替换它,所以我猜它不需要 必须。否则,您将试图故意创建无效的 xml。另一篇文章也暗示 lxml 不做这种特殊的替换,也许你可以试试?
    • AFAIK,只有 & 和 在某些情况下也应该转义。除非它们在属性值中,否则转义 ' 和 " 没有意义。请参阅 w3.org/TR/xml11
    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多