我正在将CSV文件读入数据集,现在想要获取xml字符串。我无法得到格式良好的xml标签。我该怎么办?
case1:如果我在csv文件中使用标题
案例2:没有标题。
我需要获得相同的标签标题,以便稍后我可以在我的代码中使用。 这是我的xml
<NewDataSet>
<Table>
<George_x0020_Washington>John Adams</George_x0020_Washington>
<http_x003A__x002F__x002F_en_x0023_wikipedia_x0023_org_x002F_wiki_x002F_George_Washington>http://en.wikipedia.org/wiki/John_Adams</http_x003A__x002F__x002F_en_x0023_wikipedia_x0023_org_x002F_wiki_x002F_George_Washington>
<Independent_x0020_>Federalist</Independent_x0020_>
<GeorgeWashington_x0023_jpg>JohnAdams.jpg</GeorgeWashington_x0023_jpg>
<thmb_GeorgeWashington_x0023_jpg>thmb_JohnAdams.jpg</thmb_GeorgeWashington_x0023_jpg>
<Virginia>Massachusetts</Virginia>
</Table></NewDataSet>
这是我的代码
OleDbConnection excelConnection = new OleDbConnection
(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=Text;");
OleDbCommand excelCommand = new OleDbCommand(@"SELECT * FROM HS1.csv", excelConnection);
OleDbDataAdapter excelAdapter = new OleDbDataAdapter(excelCommand);
excelConnection.Open();
DataSet ds = new DataSet();
excelAdapter.Fill(ds);
答案 0 :(得分:0)
case1:如果在csv文件中使用标题行
如果你有标题行,你应该得到格式良好的XML标签,这取决于你的名字。如果需要,可以更改SQL以修复
e.g。
SELECT [First Name] as FirstName, [Web Address] as WebAddress ....
案例2:没有标题。
从您的示例XML中,您的CSV文件不包含标题行,并使用第一行中的值作为标题。
当发生这种情况时,您需要将HDR=No
添加到您的连接字符串中,该字符串会将第一行视为值。
来自Connection String Syntax (ADO.NET)
连接到Excel
Microsoft Jet提供程序用于连接到Excel工作簿。在 以下连接字符串,Extended Properties关键字集 特定于Excel的属性。 “HDR =是;”表示 第一行包含列名,而不是数据,“IMEX = 1;”告诉了 驱动程序始终将“混合”数据列读作文本。
所以你的字符串将是
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=""Text;HDR=No""
但这意味着您的列将根据其位置进行命名。 F1,F2,F3。
如果您愿意,可以再次在SELECT
重命名。
e.g。 SELECT F1 as Name, F2 URL ....