【发布时间】:2015-03-30 12:57:58
【问题描述】:
我需要根据匹配 csvString 和模板字符串中的确切标头值来生成 XML。请指教。
实现此目的的代码:(我在下面编写了将 csvString 转换为 XML 的代码,并且在 csvString 没有标题列且只有数据行的情况下工作。需要实现进行匹配并分配值)
//Defining the final template
string template = "Header2,Header3,Header1,Header4";
//Defining the csvString. the 1st line is the header. each line is separated by '///'. each column is separated by ','
string csvString = "row11,row12,row13,row14///row21,row22,row23,row24///row31,row32,row33,row34";
string[] split = template.Split(',');
// Read into an array of strings.
string[] source = csvString.Split(new string[] { "///" }, StringSplitOptions.None);
XElement cust = new XElement("Clients",
from str in source
let fields = str.Split(',')
select new XElement("Client", split.Zip(fields, (name, value) => new XElement(name, value)))
);
任何帮助或指向正确方向的指针都会很有用。 需要让它匹配,例如,基于此:
string csvString = "Header1,Header2,Header3,Header4///row11,row12,row13,row14///row21,row22,row23,row24///row31,row32,row33,row34";
【问题讨论】:
-
我不确定你到底要什么。使用 XSLT 可以轻松地生成基于模板和数据的 XML。您需要在这里更具体一点才能获得足够的帮助。
-
基于问题末尾的 csv 字符串标题的值,我需要根据模板字符串中标题的顺序排列这些值。
-
您认为将 csv 字符串存储到数据表中是否是一种好习惯。然后根据模板字符串对数据表列重新排序。然后将数据表转换为类似于csv字符串的字符串。并使用与上面相同的代码生成xml。
-
我知道可以使用 xslt 模板来完成。我们有 1000 个客户,每个客户都有不同的模板列值。为每个客户端生成 xslt 是一项艰巨的任务。因此,为简单起见,我们使用普通的 .net 和 linq
-
嗯,我打算将 csv 字符串转换为 .net 数据表,然后根据模板字符串设置列。任何其他方法都值得赞赏。