【发布时间】:2016-11-15 21:33:21
【问题描述】:
我有一个存储过程,它从 EAV 数据库返回可变数据,并希望将数据导出为 XML。
数据表列:
group varchar
attribute varchar
value varchar
数据表示例:
group attribute value
General Name Big Bird
BodyType Color Yellow
BodyType Height 200
General Age 5
所需的 XML:
<RootTag>
<General>
<Name>Big Bird</Name>
<Age>5</Age>
</General
<BodyType>
<Color>Yellow</Color>
<Height>200</Height>
</BodyType>
</RootTag>
如果我执行 DataTable.WriteXml,我会得到:
<Item>
<group>General</group>
<attribute>Name</attribute>
<value>Big Bird</value>
</Item>
<Item>
<group>BodyType</group>
<attribute>Color</attribute>
<value>Yellow</value>
</Item>
...
我目前正在运行时动态构建一个类型,并使用该类型进行反射和序列化。我认为必须有更好的方法。
编辑:DataTable.WriteXml 示例
public static string BuildFullXML(DataTable OrderData, string OutPath)
{
if (!Directory.Exists(OutPath)) { Directory.CreateDirectory(OutPath); }
OutPath += DateTime.Now.Ticks + ".xml";
OrderData.TableName = "Item";
using (TextWriter TW = File.CreateText(OutPath))
{
OrderData.WriteXml(TW);
TW.Close();
}
return path;
}
【问题讨论】: