我正在尝试使用Python的ElementTree生成XHTML文件.
但是,ElementTree.Element()只允许我创建一个标记(例如,HTML).我需要创建一些虚拟根或任何它被调用,以便我可以放置各种,DOCTYPES等.
我怎么做?谢谢
我正在尝试使用 cElementTree 保存编码为 UTF-16 的 XML 文件。这是同一个项目,但与以下中的 DOCTYPE 问题不同:How to create <!DOCTYPE> with Python's cElementTree
我了解到,如果我没有在字符串中声明编码,cElementTree 将添加它。所以,代码是这样的:
import xml.etree.cElementTree as ElementTree
from StringIO import StringIO
s = '<?xml version=\"1.0\" ?><!DOCTYPE tmx SYSTEM \"tmx14a.dtd\" ><tmx version=\"1.4a\" />'
tree = ElementTree.parse(StringIO(s)).getroot()
header = ElementTree.SubElement(tree,'header',{'adminlang': 'EN',})
body = ElementTree.SubElement(tree,'body')
ElementTree.ElementTree(tree).write('myfile.tmx','UTF-16')
Run Code Online (Sandbox Code Playgroud)
当我用 UTF-8 编写文件时,一切都很好。但是,当我更改为 UTF-16 时,文本编码已损坏。它还缺少所需的字节顺序标记。当我尝试将 BOM 添加到字符串的开头时,
s = '\xFF\xFE<?xml version=\"1.0\"......
Run Code Online (Sandbox Code Playgroud)
ElementTree 报告错误“格式不正确(无效标记)第 1 行第 1 列”。
所有缓冲区都是 unicode 数据。如何保存为 UTF-16 XML 文件?