我需要帮助将DataTable转换为XML。我已经使用LINQ完成了它,但我无法完全按照我的要求。我做了一张照片,以便您可以轻松理解。 XML需要像下面那样格式化,所以我不能只使用dt.writexml()。艺术家ID需要自动编号。歌曲由艺术家分组。首选Linq coz的解决方案,这是我在整个项目中使用的方法,但我无法在这里获得我想要的。列名是已知的,所以你可以在代码中使用类似的东西。 row.Field(Of String)(“title”)需要帮助将DataTable转换为XML VB.NET
非常感谢。我是认真的。对不起英文不好。
CreateDatatable - 这个简单的代码应该创建一个DataTable
Dim dTable As New DataTable
dTable.Columns.Add("Title")
dTable.Columns.Add("Artist")
dTable.Columns.Add("Album")
dTable.Rows.Add("Baby one more time", "Britney Spears", "Baby one more time")
dTable.Rows.Add("Crazy", "Britney Spears", "Best of")
dTable.Rows.Add("Every time", "Britney Spears", "Best of")
dTable.Rows.Add("Black and White", "Michael Jackson", "Best of")
dTable.Rows.Add("You are not alone", "Michael Jackson", "Best of")
dTable.Rows.Add("Smile", "Michael Jackson", "Best of")
我有什么的时刻。它会将数据转换为xml而无需分组和索引索引。
Dim xmlDoc As New XDocument(
From row In dt.Rows
Select XElement("SONG",
From column In dt.Columns
Select
New XAttribute(column.Name, row.Item(column.Name))
)
)
好..我也有一些更多的代码..这将首先查询创建的XML和做分组,但仍然在歌曲元素属性专辑=“ALBUMNAME”。它应该只是从数据表到XML的一个查询..我讨厌不得不再次查询对XML再refomat它。
Dim replacement = New XDocument(New XElement("root",
original.Descendants("Song")
.GroupBy(Function(x) Convert.ToString(x.Element("artist").value))
.[Select](Function(songsForArtist, index)
New XElement("artist", New XAttribute("id", index + 1),
New XAttribute("name", songsForArtist.Key), songsForArtist))))
如果你提供的代码来创建数据表样品会更容易为我们提供帮助。 –
感谢家伙..我编辑了帖子..请看。 – lawphotog
我误解了蒂姆的评论,我把一些代码创建一个简单的数据表,在我的第一个例子谢谢 – lawphotog