我有一个列表如下:
List<datarow> list = getxml_table.AsEnumberable().ToList();
这包含每行中的XML DATA。如何将其复制到XML文件?我尝试使用XML序列化程序,但它需要一个无参数构造函数,所以这是不可能的。
任何其他想法。
编辑:
List<datarow>
内的XML数据(这只是用于说明目的的示例,实际数据非常庞大)。每行包含以下XML。
<List>
<Listevent someelementdata ="false">
<someelement>
<moreelement morelementdata = "1234"/>
</someelement>
</Listevent>
</List>
以下是我的尝试:
using (stringwriter stringwriter = new stringwriter (new stringbuilder()))
{
xmlserializer xmlserializer = new xmlserializer(typeof(DataRow));
xmlserializer.serialize(stringwriter, list);
var string = stringwriter.string();
}
答案 0 :(得分:1)
首先 - DataRow
本身不包含数据(至少在我们谈论标准ADO.NET DataRow
时)。数据存储在具体的&#34; cell&#34; DataRow
的内容(类似于DataRow["column_name"]
)。
下一步 - 为什么你需要XmlSerializer
?也许我还没有完全理解你的问题 - 但对我来说,看起来你已经拥有List<DataRow>
,并且在每一行的某个单元格中你都有一些包含xml数据的字符串。
所以你可以把这些字符串写成类似(伪代码)的文件:
List<DataRow> list = getxml_table.AsEnumberable().ToList();
using (var writer = new StreamWriter(@"c:\temp\1.txt"))
{
foreach(var row in list)
{
writer.WriteLine(row["column_name"]);
}
}