附加到XML文件中的特定位置

时间:2017-06-15 16:22:10

标签: c# xml file-io

我尝试将List<string>的原始XML数据部分附加到XML文件中,如下所示:

XmlDocument doc = new XmlDocument();
XmlNode docnode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);          
doc.AppendChild(docnode);

doc.AppendChild(doc.CreateProcessingInstruction("xml-stylesheet", "type='text/xsl' href=''"));

XmlElement Ver = doc.CreateElement("Run");
Ver.SetAttribute("version", "3.0");
XmlElement elem = doc.CreateElement("List");
elem.SetAttribute("Name", ObjectName_string);
doc.AppendChild(Ver);
doc.DocumentElement.AppendChild(elem);
doc.Save(@"1.xml");

List<string> data = Event_table.Rows.OfType<DataRow>().Select(dr=>dr.Field<string>(0)).ToList();


using (var writer = new StreamWriter(@"1.xml", append:true))
        {


            writer.WriteLine("<cmList>");

            foreach (var row in data)
            {
                writer.WriteLine(row);
            }

            writer.WriteLine("</cmList>"); 
        }

XML文件:这是最终结果应该是

的方式
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href=''?>
<Run version="3.0" startTime="3.0" endTime="3.0">
  <List Name="ABCD" />
    <cmList>

         **// My Raw data should come here from List<string> data**



    </cmList>
</Run>

如何将RAW XML数据List<string> data添加到我尝试执行<cmList>的元素write.BaseStream.Seek之间,但这会给我一个错误:

  

无法向后搜索以覆盖以前存在于a中的数据   文件以追加模式打开。

2 个答案:

答案 0 :(得分:0)

我在很多个月前写过一篇专门讨论如何将DataSet / DataTable中的数据转换为XML(专门用于Excel)的博客。看来这可能会对你有所帮助。只需排除告诉XML文件在Excel中打开的说明。它在VB.NET中,因此您必须使用类似的C#代码。

DataSet to XML Blog

答案 1 :(得分:0)

也许我不了解您示例中的内容,但为什么在将xml保存到文件之前不附加原始数据?

--mirror