我正在尝试编写一个将csv转换为xml的程序。在放入data之前,我的xml将csv的第一行保存为标记。我将粘贴我的代码和输出以便更好地理解。这是我的代码。
Imports System.IO
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Module Module1
Sub Main()
Dim source As String() = File.ReadAllLines("c:\Data\csvtoxmlTEST.CSV")
Dim firstRow As Boolean = True
Dim cust As XElement =
<events>
<%= From strs In source
Let fields = Split(strs, ",")
Select
<event EventIdentity=<%= fields(0) %>>
<name><%= fields(1) %></name>
<summary><%= fields(2) %></summary>
<description><%= fields(3) %></description>
<local-start-date-time><%= fields(4) %></local-start-date-time>
<local-end-date-time><%= fields(5) %></local-end-date-time>
<status><%= fields(11) %></status>
<locations>
<location>
<name><%= fields(6) %></name>
<location>
<name><%= fields(7) %></name>
<location>
<name><%= fields(8) %></name>
</location>
</location>
</location>
</locations>
<categories>
<category>
<name><%= fields(9) %></name>
</category>
</categories>
<custom-data><%= fields(10) %></custom-data>
</event>
%>
</events>
cust.Save("c:\Data\csvtoxmlTEST.xml")
End Sub
End Module
我的输出打印以下内容:
<?xml version="1.0" encoding="utf-8"?>
<events>
<event EventIdentity="EventIdentity">
<name>EventName</name>
<summary>EventSummary</summary>
<description>EventDescription</description>
<local-start-date-time>EventStart</local-start-date-time>
<local-end-date-time>EventEnd</local-end-date-time>
<status>status</status>
<locations>
<location>
<name>Location1_Name</name>
<location>
<name>Location2_Building</name>
<location>
<name>Location3_Room</name>
</location>
</location>
</location>
</locations>
<categories>
<category>
<name>Category</name>
</category>
</categories>
<custom-data>Department</custom-data>
</event>
<event EventIdentity="17057">
<name>ACCT</name>
<summary> Financial Acct</summary>
<description>ACCT 23071 Financial Acct</description>
<local-start-date-time>1/28/2019 10:00AM</local-start-date-time>
<local-end-date-time>1/28/2019 10:50AM</local-end-date-time>
<status>A</status>
<locations>
<location>
<name>TestClass</name>
<location>
<name>West</name>
<location>
<name>room - 24</name>
</location>
</location>
</location>
</locations>
<categories>
<category>
<name>Academic Course</name>
</category>
</categories>
<custom-data>School of Business Administration</custom-data>
</event>
</events>
我希望它保存我的xml并从<event EventIdentity="17057">
开始,而不是<event EventIdentity="EventIdentity">
。
最后这是程序读取的我的测试csv文件:EventIdentity,EventName,EventSummary,EventDescription,EventStart,EventEnd,Location1_Name,Location2_Building,Location3_Room,Category,Department,status 17057,ACCT,Financial Acct,ACCT 23071 Financial Acct,1/28 / 2019 10:00 AM / 28/2019 10:50 AM,TestClass,West,room - 24,A School of School of Administration查看原文查看译文您认为译文质量如何?
你想Skip
第一排。 source
是一个字符串数组 - 只需在迭代时跳过第一项:
<%= From strs In source.Skip(1)
Let fields = Split(strs, ",")
Select
...