我想插入此字符串:
No, on the 5<Font Script="super">th</Font>
作为XML中的文本节点xml.dom.minidom createTextNode(),但是,在我将writexml()写入文件后,标志:
< > "
转向:
No, on the 5<Font Script="super">th</Font>
我该如何避免这种情况?感谢。
我的代码的一部分:
impl = minidom.getDOMImplementation()
dom = impl.createDocument(None, None, None)
TextTextNode = dom.createTextNode(text.decode("utf-8"))
Text = dom.createElement("Text")
Text.appendChild(TextTextNode)
fileToWrite = codecs.open(output, 'w', encoding='utf-8')
dom.writexml(fileToWrite, indent=" ", addindent=" ", newl="\n", encoding='utf-8')
fileToWrite.close()
cinecanvase规范有一个示例:
<Text HAlign=”left” HPosition=”10.2” VAlign=”bottom” VPosition=”10.0”> This <Font Script=”super”>word </Font>is superscript </Text >
我需要将<Font>..</Font>
插入另一个元素,即。
答案 0 :(得分:1)
我不熟悉那种格式,但那个东西看起来像一个XML节点。试试这个:
from xml.dom import minidom
import codecs
output = "test.xml"
text="No, on the 5"
impl = minidom.getDOMImplementation()
dom = impl.createDocument(None, None, None)
FontNode = dom.createElement("Font")
FontNode.setAttribute('Script', 'super')
FontNode.appendChild(dom.createTextNode('th'))
Text = dom.createElement("Text")
TextTextNode = dom.createTextNode(text.decode("utf-8"))
Text.appendChild(TextTextNode)
Text.appendChild(FontNode)
fileToWrite = codecs.open(output, 'w', encoding='utf-8')
Text.writexml(fileToWrite, indent=" ", addindent=" ", newl="\n")
fileToWrite.close()
输出:
<Text>
No, on the 5
<Font Script="super">th</Font>
</Text>
请注意您要在文件中编写树的内容(当您调用writexml时),您需要使用XML的树根调用writexml
方法(您使用{{{ 1}},而不是你的根节点)