此程序包含一个简单的 LINQ to XML 示例查询。它演示了编写 LINQ to XML 查询所需的最少代码。
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Linq;
using System.Xml.Linq;
// See the ReadMe.html for additional information
namespace LinqToXmlSample
{
class Program
{
static void Main(string [] args)
{
// List all books by Serge and Peter with co-authored books repeated
XDocument doc = XDocument.Load(SetDataPath() + "bib.xml");
var b1 = doc.Descendants("book")
.Where(b => b.Elements("author")
.Elements("first")
.Any(f => (string)f == "Serge"));
var b2 = doc.Descendants("book")
.Where(b => b.Elements("author")
.Elements("first")
.Any(f => (string)f == "Peter"));
var books = b1.Concat(b2);
foreach (var q in books)
Console.WriteLine(q);
Console.ReadLine();
}
static public string SetDataPath()
{
string path = Environment.CommandLine;
while (path.StartsWith("\""))
{
path = path.Substring(1, path.Length - 2);
}
while (path.EndsWith("\"") || path.EndsWith(" "))
{
path = path.Substring(0, path.Length - 2);
}
path = Path.GetDirectoryName(path);
return Path.Combine(path, "data\\");
}
}
}
