使用textwriter向XML C#添加多个元素
我需要以下输出使用textwriter向XML C#添加多个元素,c#,xml,xmlwriter,C#,Xml,Xmlwriter,我需要以下输出 <BatchFile> <BatchFileHeader> <MessageType>MSG103</MessageType> <Version>456</Version> <BatchFileHeader> <Vendor> <VendorType>VVV</VendorType> </Vendor
<BatchFile>
<BatchFileHeader>
<MessageType>MSG103</MessageType>
<Version>456</Version>
<BatchFileHeader>
<Vendor>
<VendorType>VVV</VendorType>
</Vendor>
</BatchFile>
但是我得到了以下错误
状态epilog中的令牌startelement将导致无效的xml
文件
我做错了什么?你忘了写最外层的StartElement
添加以下内容可以解决您的问题
StringWriter stringwriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringwriter);
xmlTextWriter.Formatting = Formatting.Indented;
xmlTextWriter.WriteStartDocument();
xmlTextWriter.WriteStartElement("BatchElement");
xmlTextWriter.WriteStartElement("BatchFileHeader");
xmlTextWriter.WriteElementString("MessageType", "MSG103");
xmlTextWriter.WriteElementString("MessageVersion", "456");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("Vendor");
xmlTextWriter.WriteElementString("Vendor", "VVV");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndDocument();
您是否正在编写
元素,因为XML只允许最外层的一个元素。有关更多信息,请参阅此@targetarian在xmlTextWriter.WriteStartDocument()之后包含此元素;xmlTextWriter.WriteStarteElement(“批处理文件”)。。。。xmlTextWriter.WriteEndDocument()代码>谢谢。我没有最外层的元素,这就是错误的原因。
StringWriter stringwriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringwriter);
xmlTextWriter.Formatting = Formatting.Indented;
xmlTextWriter.WriteStartDocument();
xmlTextWriter.WriteStartElement("BatchElement");
xmlTextWriter.WriteStartElement("BatchFileHeader");
xmlTextWriter.WriteElementString("MessageType", "MSG103");
xmlTextWriter.WriteElementString("MessageVersion", "456");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("Vendor");
xmlTextWriter.WriteElementString("Vendor", "VVV");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndDocument();