DataTable을 XML로 변환하는 데 도움이 필요합니다. 나는 LINQ를 사용하여 그것을 해왔지만 정확하게 할 수는 없다. 나는 당신이 쉽게 이해할 수 있도록 그림을 그렸다. XML은 아래처럼 특정 형식이어야하므로 dt.writexml()을 사용할 수 없습니다. 아티스트 ID는 자동 전화 번호 여야합니다. 노래는 아티스트에 의해 groupped 있습니다. Linq coz의 솔루션을 선호합니다. 내가이 프로젝트에서 사용했던 솔루션이지만, 원하는 것을 얻을 수는 없습니다. 열 이름은 알려져 있으므로 코드에서 이와 같은 것을 사용할 수 있습니다. 문자열 (Of String) ("제목")DataTable을 XML로 변환하는 데 도움이 필요합니다.
고마워요. 진심이야. 가난한 영어에 대한 죄송합니다.
CreateDatatable -이 간단한 코드는 내가 지금 가지고있는 데이터 테이블
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")
을 만들어야합니다. 그것은 groupping 및 앨범 인덱스없이 XML로 datatable을 변환합니다.
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"를 가진 것입니다. 그리고 그것은 datatable에서 xml에 이르는 하나의 쿼리 여야합니다. xml을 다시 쿼리하여 다시 리팩토하는 것을 싫어합니다. 당신이 DOTNET을 사용할 수 있습니다
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
Tim의 코멘트를 잘못 이해했습니다. 첫 번째 예와 같이 간단한 데이터 테이블을 생성하는 코드를 작성했습니다. 감사합니다. – lawphotog