C# 在.NET中解析xml歌曲文件

C# 在.NET中解析xml歌曲文件,c#,asp.net,xml,C#,Asp.net,Xml,我需要解析多个包含歌曲信息的xml文件。 结构是这样的: <song_info> <title>Title1</title> <artist>Artist1</artist> <lyrics>Sample lyrics</lyrics> </song_info> 标题1 艺人1 歌词样本 用户输入一个短语,我需要在歌词标签中搜索该短语。如果歌词标签中存在短语,我需要输出指向歌曲文件的链接。

我需要解析多个包含歌曲信息的xml文件。 结构是这样的:

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

标题1
艺人1
歌词样本

用户输入一个短语,我需要在歌词标签中搜索该短语。如果歌词标签中存在短语,我需要输出指向歌曲文件的链接。LINQ是如何做到这一点的?我正在使用.NET3.5。谢谢

如果每个文件只包含一首歌的信息,您可以

XDocument xdoc = XDocument.Load("somefile.xml");
string phrase ="lyric";
if(xdoc.Descendants("lyrics").First().Value.Contains(phrase))
{
   //file contains phrase
}
string关键字=“dummy”;
列表文件=新列表();
foreach(目录.GetFiles(@“d:\lyms”)中的var文件)
{
XmlDocument doc=新的XmlDocument();
单据加载(文件);
if(doc.SelectSingleNode(“/song\u info/lysts”).InnerText.Contains(关键字))
{
文件。添加(文件);
}
}

是的,每个xml文件包含一首歌曲!
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);
    }
}