使用C# XmlWriter创建XML时,如何生成大写格式的XML起始内容?
如何生成大写格式的XML声明与元素标签?
默认的XmlWriter确实没有提供直接配置生成大写XML声明和标签的选项——毕竟XML规范里,声明的关键字(比如version、encoding)本身是大小写不敏感的,标签名的大小写则由开发者控制。不过如果你的业务场景强制要求大写格式,我们可以通过两个小技巧实现:
1. 手动生成大写的XML声明
XmlWriter.WriteStartDocument()方法会固定输出小写的声明内容,所以我们可以用WriteProcessingInstruction()方法手动写入大写版本的XML声明:
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, Encoding = Encoding.Unicode }; string xmlPath = @"c:\file.xml"; using (XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings)) { // 手动写入大写的XML声明 xmlWriter.WriteProcessingInstruction("XML", "VERSION=\"1.0\" ENCODING=\"utf-16\" STANDALONE=\"no\""); // 写入大写的根元素及子元素 xmlWriter.WriteStartElement("CP"); // 大写标签名 xmlWriter.WriteStartElement("USER"); xmlWriter.WriteString("NA"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("PASSWORD"); xmlWriter.WriteString("NA"); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); // 闭合根元素 }
2. 确保所有元素标签名使用大写
XmlWriter会严格按照你传入WriteStartElement()的字符串来生成标签,所以只要你把所有标签名写成大写,输出的标签自然就是大写格式。
生成的最终XML结果:
<?XML VERSION="1.0" ENCODING="utf-16" STANDALONE="no"?> <CP> <USER>NA</USER> <PASSWORD>NA</PASSWORD> </CP>
小提示:注意你原来的示例里根元素<cp>和闭合标签</cu>不匹配,上面的代码已经修正了这个问题,确保标签闭合一致。
内容的提问来源于stack exchange,提问作者Dim Mark
相关产品推荐
相关产品推荐

