0
我有一个类别/子记录的DataTable在下面的格式:合并重复的数据表中记录为XML文档
hierarchy id1 cat1 id2 cat2 id3 cat3
4 3105 Mens 3195 Shorts 3130 Shorts
4 3105 Mens 3195 Shorts 3196 Swim Shorts
4 3105 Mens 3177 Knitwear 3118 Jumpers
4 3105 Mens 3177 Knitwear 3178 Cardigans
4 3105 Mens 3177 Knitwear 3814 V-Neck Knitwear
我试图将其转换为XML在这样的格式:
<CATEGORY NAME="mens">
<CATEGORIES NAME="Shorts" />
<CATEGORIES NAME="Shorts" />
<CATEGORIES NAME="SwimShorts" />
<CATEGORIES NAME="Knitwear" />
<CATEGORIES NAME="Jumpers" />
<CATEGORIES NAME="Cardigans" />
<CATEGORIES NAME="V-Neck Knitwear" />
但我能得到最好的是这样的:
<CATEGORY NAME="Mens">
<CATEGORIES NAME="Knits" />
<CATEGORIES NAME="Crew Neck Knitwear" />
</CATEGORY>
<CATEGORY NAME="Mens">
<CATEGORIES NAME="Knits" />
<CATEGORIES NAME="Cardigans" />
正如你可以看到有哪些,我不想重复。我知道我需要以某种方式合并或去重复。
我返回数据为AsEnumerable()
,然后做一个foreach和创造顶级类别和子XElements的子类别的的XElement:
var e = new XElement("CATEGORY", new XAttribute("ID", item["did1"]), new XAttribute("NAME", item["name1"]),
item["did2"].ToString() != "" ? new XElement("CATEGORIES", new XAttribute("ID", item["did2"]), new XAttribute("NAME", item["name2"])) : null,
item["did3"].ToString() != "" ? new XElement("CATEGORIES", new XAttribute("ID", item["did3"]), new XAttribute("NAME", item["name3"])) : null,
item["did4"].ToString() != "" ? new XElement("CATEGORIES", new XAttribute("ID", item["did4"]), new XAttribute("NAME", item["name4"])) : null
);
我不挑剔什么技术我曾经产生结果。