我使用XDocument
生成一个utf-8 XML文件。
XDocument xml_document = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement(ROOT_NAME,
new XAttribute("note", note)
)
);
...
xml_document.Save(@file_path);
文件已经正确生成并且已成功使用xsd文件进行验证。 当我尝试将XML文件上传到在线服务时,服务显示我的文件在第一行处出现问题;我发现该问题是由文件开头的BOM引起的。 你知道为什么BOM会附加到文件中以及如何在保存文件时去除它吗? 如字节顺序标记维基百科文章所述: 虽然Unicode标准允许在UTF-8中使用BOM,但它不需要或建议这样做。在UTF-8中,字节顺序没有意义,因此BOM仅用于识别文本流或文件是否为UTF-8格式,或者它是从具有BOM的另一种格式转换而来。 这是XDocument的问题还是我应该联系在线服务提供商的人以请求解析器升级?
new UTF8Encoding(false)
,它仍然处于utf-8编码吗? - systempuntooutwriter.Formatting = Formatting.Indented;
。这行代码的作用是将输出的XML格式化为带缩进的形式,以便更容易阅读。 - Kevin Panko