每当我使用DataSet.GetXml将DatSet转换为XML时,都会忽略任何空值,因此,我希望这样:
<value1>a</value1>
<value2></value2>
<value3>c</value3>
我得到了这个:
<value1>a</value1>
<value3>c</value3>
任何快速而肮脏的方式来处理这个问题? 感谢
编辑: 我认为解决方案是使用WriteXml。任何人都可以提供一个使用它的样本而不写入文件,但得到像GetXml一样的字符串吗?感谢
答案 0 :(得分:4)
此问题列在Microsoft知识库文章中:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q317961
问题是您没有附加到数据集的架构,指定应该写出该元素。
我不相信使用WriteXml会解决问题,正如文档所述,"Calling this method is identical to calling WriteXml with XmlWriteMode set to IgnoreSchema."
但您可以自由尝试 - 这是等效的代码:
StringWriter sw = new StringWriter();
ds.WriteXml(sw);
string outputXml = sw.ToString();
答案 1 :(得分:4)
这很好用:
//convert to xml with the DataSet schema:
StringWriter writer = new StringWriter();
ds.WriteXml(writer, XmlWriteMode.WriteSchema);
string xml = writer.ToString();
//Convert from xml to DataSet:
StringReader stringReader = new StringReader(response);
DataSet ds = new DataSet();
ds.ReadXml(stringReader);