2013-10-14 55 views
0

我有一个代码,其中将数据集值保存为xml。数据集中的值来自Excel工作表(.xls格式)。我的问题是,如果一个值为空或为空,它将忽略它,但我希望它应该关闭它的标记,例如<test></test></test>保存包括空白值的XML

我的代码是

daAdapter = new OleDbDataAdapter("Select * FROM [KDC Report$]", connection); 
System.Data.DataTable dt = new System.Data.DataTable("Assets"); 
daAdapter.Fill(dt); 
DataSet ds = new DataSet("DocumentElement"); 
ds.Tables.Add(dt); 
var memoryStream = new MemoryStream(); 

using (TextWriter streamWriter = new StreamWriter(memoryStream)) 
{ 
    var xmlSerializer = new XmlSerializer(typeof(DataSet)); 
    xmlSerializer.Serialize(streamWriter, ds); 
    Encoding.UTF8.GetString(memoryStream.ToArray()); 
} 

ds.WriteXml("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml"); 
+0

将成员的IsNullable属性设置为true – HimBromBeere

+0

@ HimBromBeere:in ds.WriteXml(“C:\\ Development \\ MyAppln \\ ExcelToXML \\ Products.xml”);我使用IsNullable属性? – NoviceToProgramming

+0

可能的重复:http://stackoverflow.com/questions/254821/xmlserializer-serialize-empty-variable-to-use-both-tags – orel

回答

0

您序列化的数据集。对于数据集,您无法控制生成的XML。

如果您使用自己的具有所有字段属性的类,则可以使用System.Xml.Serialization namespace中的属性来控制序列化。

+0

有没有办法可以在我现有的代码中使用? – NoviceToProgramming