c# - 这种格式的xml文件怎么写?

标签 c# xml

我想用 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> 

最佳答案

是的 - 您正在调用写入文本内容的 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 语句来确保输出始终关闭,即使出现异常被抛出。

关于c# - 这种格式的xml文件怎么写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918044/

相关文章:

c# - 指定的转换对日期选择器无效

c# - 如何在没有分配字母的情况下获得磁盘卷上的可用空间?

xml - 使用预先创建的 PDF 页面作为书籍封面

javascript - 在E4X中过滤2个不同的节点?

c# - 如何检查字符串是否包含 List<string> 的任何元素?

c# - WPF 绑定(bind)不更新按钮内容

c++ - 使用 RapidXML 解析

python - LXML:获取标题/顶级注释

java - HtmlUnit - 将 HtmlPage 转换为 HTML 字符串?

c# - 从 Session 中清理非托管资源,如 Crystal Report Document