2011-05-30 67 views
0

我需要解析多個帶有歌曲信息的xml文件。 的結構是這樣的:在.NET中解析xml歌曲文件

<song_info> 
<title>Title1</title> 
<artist>Artist1</artist> 
<lyrics>Sample lyrics</lyrics> 
</song_info> 

用戶輸入一個詞組,我需要尋找在歌詞標籤短語。如果短語存在於歌詞標籤中,我需要輸出歌曲文件的鏈接。這是如何完成與LINQ?我正在使用.NET 3.5。謝謝!

回答

2

如果每個文件只包含一首歌曲的信息,你可以只是做

XDocument xdoc = XDocument.Load("somefile.xml"); 
string phrase ="lyric"; 
if(xdoc.Descendants("lyrics").First().Value.Contains(phrase)) 
{ 
    //file contains phrase 
} 
+0

是的,每個XML文件包含了1首歌曲! – Raisolution 2011-05-30 16:43:10

0
string keyword = "dummy"; 
List<string> files = new List<string>(); 
foreach (var file in Directory.GetFiles(@"d:\lyrics")) 
{ 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(file); 
    if (doc.SelectSingleNode("/song_info/lyrics").InnerText.Contains(keyword)) 
    { 
     files.Add(file); 
    } 
}