【问题标题】:Strange result from C#'s DataSet WriteXML conversionC# 的 DataSet WriteXML 转换的奇怪结果
【发布时间】:2012-07-11 04:42:10
【问题描述】:

我编写了以下代码来提取一些查询并将结果转换为 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="preserve" 来自哪里。有什么想法吗?

<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>

谢谢

【问题讨论】:

  • 你能发布更多关于你正在使用的架构的信息吗?
  • 我添加了更多信息。请看一看。

标签: c# xml visual-studio


【解决方案1】:

xml:space="preserve" 表示解析器应在标记中保留任何空白。当空白未标准化时,它会生成此信息。 (空格只是空格,不以空格开头或结尾,并且不包含两个或多个连续的空格。)

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

【讨论】:

    猜你喜欢
    • 2017-01-24
    • 2021-01-29
    • 2011-10-07
    • 2019-12-10
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多