来自C#的DataSet WriteXML转换的奇怪结果

时间:2012-07-11 04:42:11

标签: c# xml visual-studio

我编写了以下代码来提取一些查询并将结果转换为XML文件。

OdbcConnection conn = new OdbcConnection(args[0]);
OdbcDataAdapter da = new OdbcDataAdapter();
conn.Open();
da.SelectCommand = new OdbcCommand(args[1], conn);
DataSet ds = new DataSet();
da.Fill(ds);
ds.WriteXml("iDA.XML");

但是我得到以下内容并不完全是我想要数据的样子。我不知道每个元素的开头和结尾的“ x0000”来自哪里,或者“ xml:space =”保留“来自哪里。任何想法?

<so_bo_suffix_x0000_ xml:space="preserve"></so_bo_suffix_x0000_> 
<so_processing_date_x0000_>2012-07-08T00:00:00+10:00</so_processing_date_x0000_> 

不幸的是我无法提供更多的信息,但是,我可以告诉你关于上面几行,数据应该分别如下所示。这是来自运行相同查询的类似应用程序。

<so_bo_suffix>  </so_bo_suffix>
<so_processing_date>17/04/2012 12:00:00 AM</so_processing_date><so_processing_date>17/04/2012 12:00:00 AM</so_processing_date>

由于

1 个答案:

答案 0 :(得分:0)

xml:space="preserve"表示解析器应该在标记内保留任何空格。当空格未规范化时,它会生成此值。 (空格只是空格,不是以空格开头或结尾,也不是按顺序包含两个或多个空格。)

_x0000_后缀来自XmlConvert.EncodeLocalName()。这意味着它找到了一个在XML中无效的字符。在这种情况下,它是一个空字符。不过,我不知道这个空字符的来源。