【发布时间】:2018-11-30 16:57:45
【问题描述】:
所以我正在处理我的项目,我想将 CSV 文件中的 datagridview 写入 XML 文件,我已经实现了,但我想知道是否有任何方法可以对订单视图进行排序或更改结果我想要的 XML 是从特定列中按字母顺序排序。这是我保存 XML 文件的代码。
if (saveFileDialogXml.ShowDialog() == DialogResult.OK)
{
//Xml Alphabetical order code goes here
DataTable dst = new DataTable();
dst = (DataTable)Datagridview1.DataSource;
dst.TableName = "Data";
dst.WriteXml(saveFileDialogXml.FileName);
}
}
但是这个输出是
<?xml version="1.0" standalone="yes"?>
<Item_x0020_Code>Item Code</Item_x0020_Code>
<Item_x0020_Description>Item Description</Item_x0020_Description>
<Current_x0020_Count>Current Count</Current_x0020_Count>
<On_x0020_Order>On Order</On_x0020_Order>
你可以看到它甚至放了十六进制,它只是把所有的东西都扔在那里,所以我想知道我是否可以按照我想要的方式重新格式化它,比如删除 x0020。所以我尝试使用 LINQ 来查看文件是否有问题,但我不断收到另一个错误,上面写着
System.Xml.XmlException: '' ' 字符,十六进制值 0x20,不能包含在名称中。'
这是 LINQ 代码:
var xmlFile = new XElement("root",
from line in File.ReadAllLines(@"C:\\StockFile\stocklist.csv")
.Where(n => !string.IsNullOrWhiteSpace(n))
where !line.StartsWith(",") && line.Length > 0
let parts = line.Split(',')
select new XElement("Item Code",
new XElement("Test1", parts[0]),
new XElement("Test2", parts[1])
)
);
另外,我是 C# 新手,也是我在这里的第一篇文章,所以请原谅凌乱的写作或展示位置。
【问题讨论】:
标签: c# xml winforms linq datagridview