XML换行符实体与Python编码

2024-09-28 03:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python脚本中有以下代码行:

dep11 = ET.SubElement(dep1, "POVCode").text = "#declare lg_quality = LDXQual;
#if (lg_quality = 3)
#declare lg_quality = 4;
#end"

我的问题是关于
字符。我想在XML输出中看到这个字符实体,但是第一个和号一直被替换为&字符实体,它创建了无意义字符实体
。你知道吗

我将文件编码为utf-8。你知道吗

import xml.etree.ElementTree as ET

...

with open("LGEO.xml", "wb") as f:
    tree.write(f, "utf-8")

最后我得到了:

<POVCode>#declare lg_quality = LDXQual;&amp;#x0A;#if (lg_quality = 3)&amp;#x0A;#declare lg_quality = 4;&amp;#x0A;#end</POVCode>

不知道我做错了什么。你知道吗

[编辑]

我试图实现@mzjn在这里指出的解决方案。你知道吗

How to output XML entity references

我有六行代码:

dep11 = ET.SubElement(dep1, "POVCode")
dep21 = ET.SubElement(dep2, "POVCode")
dep11.text = "#declare lg_quality = LDXQual;&&#x0A;#if (lg_quality = 3)&&#x0A;#declare lg_quality = 4;&&#x0A;#end"
dep21.text = "#declare lg_studs = LDXStuds;&&#x0A;"
ET.tostring(dep11).replace('&amp;&amp;', '&')
ET.tostring(dep21).replace('&amp;&amp;', '&')

我没有得到任何错误,但是当我write树时,结果与之前没有任何不同。你知道吗

我又被困住了。你知道吗


Tags: text实体if字符etendampquality
1条回答
网友
1楼 · 发布于 2024-09-28 03:19:18

我最终使用的是标准的Python write函数,而不是ElementTree自己的write函数。你知道吗

text = ET.tostring(root).replace("&amp;&amp;", "&")

with open("LGEO.xml", "wb") as f:
    f.write(text.encode("utf-8"))

以上是Python代码的最后一步。我不知道把根对象转换成这样的字符串是否有缺点。它可以慢一点,但对我来说很管用。你知道吗

相关问题 更多 >

    热门问题