gpt4 book ai didi

c# - 如何使用 C# 从 XmlTextWriter 中删除 BOM?

转载 作者:可可西里 更新时间:2023-11-01 08:16:37 27 4
gpt4 key购买 nike

如何从正在创建的 XML 文件中删除 BOM?

我已经尝试使用新的 UTF8Encoding(false) 方法,但它不起作用。这是我的代码:

XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(filename, new UTF8Encoding(false));
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("items");
xmlWriter.Close();
xmlDoc.Load(filename);
XmlNode root = xmlDoc.DocumentElement;
XmlElement item = xmlDoc.CreateElement("item");
root.AppendChild(item);
XmlElement itemCategory = xmlDoc.CreateElement("category");
XmlText itemCategoryText = xmlDoc.CreateTextNode("test");
item.AppendChild(itemCategory);
itemCategory.AppendChild(itemCategoryText);
xmlDoc.Save(filename);

最佳答案

您将文件保存两次 - 一次使用 XmlTextWriter,一次使用 xmlDoc.Save。从 XmlTextWriter 保存 不是 添加 BOM - 使用 xmlDoc.Save 保存是。

只需保存到 TextWriter,这样您就可以再次指定编码:

using (TextWriter writer = new StreamWriter(filename, false,
new UTF8Encoding(false))
{
xmlDoc.Save(writer);
}

关于c# - 如何使用 C# 从 XmlTextWriter 中删除 BOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1755958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com