我需要解析其中包含歌曲信息的多个xml文件。 结构是这样的:
<song_info>
<title>Title1</title>
<artist>Artist1</artist>
<lyrics>Sample lyrics</lyrics>
</song_info>
用户输入一个短语,我需要在歌词标签中搜索该短语。如果歌词标签中存在该短语,我需要输出歌曲文件的链接。如何使用LINQ完成?我使用的是.NET 3.5。谢谢!
答案 0 :(得分:2)
如果每个文件只包含一个歌曲信息,您可以这样做
XDocument xdoc = XDocument.Load("somefile.xml");
string phrase ="lyric";
if(xdoc.Descendants("lyrics").First().Value.Contains(phrase))
{
//file contains phrase
}
答案 1 :(得分: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);
}
}