I take it you are using just an XML file for storing data, and not a database correct?
And you want a One (artist) to Many (titles).
You need two tables. One with Artists (ArtistUniqueID, ArtistName), one with Titles (TitleID, TitleName, ArtistID, FilePath). As you see, each table must have a column that acts as the unique identifier. You can use Guids for this, as you will be fine. So, for a new artist, you use MyArtistRow.Item("ArtistUniqueID") = Guid.NewGuid
When you read in a song and the name of its artist, you must go to your artists table to see if it already exists. Use a DataTable.Select statement.
VB Code:
MyArtists = MyArtistDataTable.Select("Select * From ArtistName Where ArtistName = " & artistname
If you get no rows back, then its a new artist:
1) Do a
VB Code:
myArtistRow = MyArtistDataTable.NewRow
2) Fill in the column data...
VB Code:
myArtistRow.Item(0) = "someArtist"
3) Add the row to the datatable...
VB Code:
MyArtistDataTable.Rows.Add(myArtistRow)
If you do get a row back, then grab that Artist's unique identifier, and store that identifier in the Titles table along with the song title.