我想在c#中编写代码,我需要这样写。
<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>
答案 0 :(得分:11)
是的 - 您正在调用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
语句来确保即使抛出异常也总是关闭输出。
答案 1 :(得分:4)
您在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();