如何编写这种格式的XML文件?

问题描述:

我想在C#中编写代码,我需要这样做。如何编写这种格式的XML文件?

<Email version="2.00" xmlns="http://www.portalfiscal.inf.br/nfe"> </Email> 

我试过这个,但不是确切的。

XmlTextWriter writer = new XmlTextWriter("D:\\nefe.xml", System.Text.Encoding.UTF8); 
writer.WriteStartDocument(); 
writer.WriteStartElement("Email"); 
writer.WriteString("version=2.00 xmlns=Http://www.portalfiscal.inf.br/nfe"); 
writer.WriteEndElement(); 
writer.WriteEndDocument(); 
writer.Close(); 

和输出这段代码是给这样的

<Email>version=2.00 xmlns=Http://www.portalfiscal.inf.br/nfe</Email> 

嗯,是 - 你打电话给WriteString,它写入文本内容。示例XML包含属性,所以你应该用WriteAttributeString

writer.WriteAttributeString("version", "2.00"); 
writer.WriteAttributeString("xmlns", "http://www.portalfiscal.inf.br/nfe"); 

已经使用XmlWriter虽然?我个人建议使用LINQ to XML,如果你可能可以。这并不是因为适合写这XmlWriter可以轻松处理大量文件,但它是当你只是想创建中等大小的简单文档清洁:

XNamespace ns = "http://www.portalfiscal.inf.br/nfe"; 
var doc = new XDocument(new XElement(ns + "Email", 
            new XAttribute("xmlns", ns.ToString()), 
            new XAttribute("version", "2.00"))); 
doc.Save("nefe.xml"); 

如果坚持使用XmlWriter,应该使用using语句来确保即使抛出异常也始终关闭输出。

+0

非常感谢您的先生! – Saqi

您正在寻找有关XmlTextWriter的方法是WriteAttributeString

XmlTextWriter writer = new XmlTextWriter("D:\\nefe.xml", System.Text.Encoding.UTF8); 
writer.WriteStartDocument(); 
writer.WriteStartElement("Email"); 
writer.WriteAttributeString("version","2.00"); 
writer.WriteAttributeString("xmlns","Http://www.portalfiscal.inf.br/nfe"); 
writer.WriteEndElement(); 
writer.WriteEndDocument(); 
writer.Close(); 

活生生的例子:http://rextester.com/EZU91552