如何编写这种格式的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
语句来确保即使抛出异常也始终关闭输出。
答
您正在寻找有关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();
非常感谢您的先生! – Saqi