DataSet.GetXml不返回null结果

时间:2009-06-08 07:19:47

标签: asp.net xml dataset

每当我使用DataSet.GetXml将DatSet转换为XML时,都会忽略任何空值,因此,我希望这样:

<value1>a</value1>
<value2></value2>
<value3>c</value3>

我得到了这个:

<value1>a</value1>
<value3>c</value3>

任何快速而肮脏的方式来处理这个问题? 感谢

编辑: 我认为解决方案是使用WriteXml。任何人都可以提供一个使用它的样本而不写入文件,但得到像GetXml一样的字符串吗?感谢

2 个答案:

答案 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);