Chr*_*ris 12 c# xml xmlwriter byte-order-mark
如何从正在创建的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);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 30
您要将文件保存两次 - 一次使用XmlTextWriter,一次使用xmlDoc.Save.从中保存XmlTextWriter 不是添加BOM - 使用xmlDoc.Saveis 保存.
只需保存到一个TextWriter,以便您可以再次指定编码:
using (TextWriter writer = new StreamWriter(filename, false,
new UTF8Encoding(false))
{
xmlDoc.Save(writer);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13226 次 |
| 最近记录: |