C# 使用XDocument以大写形式获取UTF-8
我需要在使用C# 使用XDocument以大写形式获取UTF-8,c#,.net,xml,declaration,linq-to-xml,C#,.net,Xml,Declaration,Linq To Xml,我需要在使用XDocument制作的XML文档顶部有XML编码和版本 我有这个,但它是小写的,而且必须是大写的 我需要做什么 我使用名为“doc”的XDocument类声明了一个新的XML文档 我使用doc.save()将其保存到文件中 我试过: doc.Declaration.Encoding.ToUpper() 声明新的XDeclaration 键入大写编码并将mydoc.Declaration设置为myXDecaration 它仍然是小写的。您可以创建自定义的XmlTextWriter
XDocument
制作的XML文档顶部有XML编码和版本
我有这个,但它是小写的,而且必须是大写的
我需要做什么
我使用名为“doc”的XDocument
类声明了一个新的XML文档
我使用doc.save()将其保存到文件中代码>
我试过:
doc.Declaration.Encoding.ToUpper()代码>
- 声明新的
XDeclaration
- 键入大写编码并将my
doc.Declaration
设置为myXDecaration
李>
它仍然是小写的。您可以创建自定义的XmlTextWriter
,例如:
public class CustomXmlTextWriter : XmlTextWriter
{
public CustomXmlTextWriter(string filename)
: base(filename, Encoding.UTF8)
{
}
public override void WriteStartDocument()
{
WriteRaw("<?xml VERSION=\"1.0\" ENCODING=\"UTF-8\"?>");
}
public override void WriteEndDocument()
{
}
}
使用XmlDocument的工作解决方案:
myXmldoc.FirstChild.Value = "version=\"1.0\" encoding=\"UTF-8\"";
正如user726720所指出的,Kirill Polishchuk给出的答案失去了格式,需要模式代码。为什么需要大写?对于符合标准的XML解析器来说,这应该没有什么区别。我同意,但这不取决于我,它需要大写。我尝试了“doc.Declaration.Version.ToUpper”,声明了一个新的XDeclaration,用大写字母键入版本,并将我的“doc.Declaration”设置为我的XDeclaration。它仍然是小写的,我使用的是doc.Save();谢谢,请编辑您的问题,并使用您刚刚在评论中输入的详细信息进行更新。阅读您的问题的人可能会忽略这些。您是否尝试过循环所有doc.Declaration
属性和touper
属性名称?是的,我得到的对象引用未设置为对象的实例。当我尝试“doc.Declaration.Version=“UTF-8”时我在这一行代码中也遇到了同样的错误。这远远不是完美的。它甚至不是XML。XML允许(确实更喜欢)编码名称是大写的,但是关键字“encoding”和“version”必须是小写的
myXmldoc.FirstChild.Value = "version=\"1.0\" encoding=\"UTF-8\"";