Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用textwriter向XML C#添加多个元素_C#_Xml_Xmlwriter - Fatal编程技术网

使用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();