Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datatable.WriteXml-如何在元素名称中保留空格_C#_.net_Xml_Vb.net_Xml Parsing - Fatal编程技术网

C# Datatable.WriteXml-如何在元素名称中保留空格

C# Datatable.WriteXml-如何在元素名称中保留空格,c#,.net,xml,vb.net,xml-parsing,C#,.net,Xml,Vb.net,Xml Parsing,我在应用程序中添加了将数据表转换为XML的功能,如下所示: dtResults.WriteXml(fileName); _在输出的XML文档中添加了x0020_uu,而不是空格 是否可以在不使用x0020_uu代码的情况下生成XML文件?i、 e.是否可以使用该方法或类似方法生成XML文件,并实际保留空间 这是数据网格: 这是生成的XML: 我认为你想要的是不可能的。我不相信XML元素名可以包含空格,就像变量名不能包含空格一样。它需要成为一个空间的原因是什么 如果确实需要一个空间,我认为这会使

我在应用程序中添加了将数据表转换为XML的功能,如下所示:

dtResults.WriteXml(fileName);
_在输出的XML文档中添加了x0020_uu,而不是空格

是否可以在不使用x0020_uu代码的情况下生成XML文件?i、 e.是否可以使用该方法或类似方法生成XML文件,并实际保留空间

这是数据网格:

这是生成的XML:


我认为你想要的是不可能的。我不相信XML元素名可以包含空格,就像变量名不能包含空格一样。它需要成为一个空间的原因是什么

如果确实需要一个空间,我认为这会使xml无法用于解析,那么您只需在文件中进行查找和替换即可


如果您要将其存储起来以便读入并再次显示在数据表中,则在读入数据后,我只需重命名列,并用空格替换_x0020。

我认为您不可能需要这些列。我不相信XML元素名可以包含空格,就像变量名不能包含空格一样。它需要成为一个空间的原因是什么

如果确实需要一个空间,我认为这会使xml无法用于解析,那么您只需在文件中进行查找和替换即可


如果您要将其存储以便读入并再次显示在数据表中,则在读入数据后,我只需重命名列,并将_x0020_uu替换为空格。

您的列名称包含空格。XML元素名称不能包含空格。XML中使用空格分隔元素名和属性名,例如:

<ElementName Attribute1="value" />
DataTable.WriteXml方法尝试以一致的方式写出XML文件,以便以后可以使用另一个DataTable对象加载XML并尽可能接近原始文件的精确副本。因此,它用十六进制值替换非法字符,以便在翻译过程中不会丢失非法字符

因此,如果希望以不同的方式将其写入XML,则需要:

更改DataTable中列的名称,使其不包含空格 使用XDocument、XmlDocument、XmlWriter或XmlSerializer手动输出XML,并根据需要格式化输出 像现在一样输出XML,然后在其上运行XSLT脚本以修复格式
列的名称包含一个空格。XML元素名称不能包含空格。XML中使用空格分隔元素名和属性名,例如:

<ElementName Attribute1="value" />
DataTable.WriteXml方法尝试以一致的方式写出XML文件,以便以后可以使用另一个DataTable对象加载XML并尽可能接近原始文件的精确副本。因此,它用十六进制值替换非法字符,以便在翻译过程中不会丢失非法字符

因此,如果希望以不同的方式将其写入XML,则需要:

更改DataTable中列的名称,使其不包含空格 使用XDocument、XmlDocument、XmlWriter或XmlSerializer手动输出XML,并根据需要格式化输出 像现在一样输出XML,然后在其上运行XSLT脚本以修复格式
我也面临同样的问题。我正在从excel文件中导出数据,该文件包含带空格的列。因此,我的列也包含空格。 因此,我尝试了以下方式

StringWriter strXML = new StringWriter();
dtPartOriginalData.WriteXml(strXML, XmlWriteMode.IgnoreSchema, false);
strMessages = strXML.ToString().Replace("_x0020_", "");

这将替换x0020 u并生成xml。但是不能使用此xml构造相同的数据表。这是一个解决办法,我想把它作为一个建议。谢谢。

我也面临同样的问题。我正在从excel文件中导出数据,该文件包含带空格的列。因此,我的列也包含空格。 因此,我尝试了以下方式

StringWriter strXML = new StringWriter();
dtPartOriginalData.WriteXml(strXML, XmlWriteMode.IgnoreSchema, false);
strMessages = strXML.ToString().Replace("_x0020_", "");

这将替换x0020 u并生成xml。但是不能使用此xml构造相同的数据表。这是一个解决办法,我想把它作为一个建议。谢谢。

20是空间的十六进制值。请更具体地说明您的意思。我希望在XML文件中生成空格,而不是空格的十六进制代码。甚至有可能吗?您能展示一个正在输出的XML示例吗?你在哪里看到十六进制数?@Stevendogart编辑的问题:XML标记名不能有空格,所以它正在尽最大努力。能否将列的名称更改为CustomerName,但在列标题中显示Customer name?20是空格的十六进制值。请更具体地说明您的意思。我希望在XML文件中生成空格,而不是空格的十六进制代码。甚至有可能吗?您能展示一个正在输出的XML示例吗?你在哪里看到十六进制数?@Stevendogart编辑的问题:XML标记名不能有空格,所以它正在尽最大努力。你能把这列的名字改成Cu吗
stomerName但在列标题中显示客户名称?+1:今天遇到了以数字开头的xml元素,根据。像这样的元素获得数字1的十六进制表示形式,并将获得+1:今天遇到了一个以数字开头的xml元素,根据。像这样的元素获得数字1的十六进制表示形式,并将获得