.csproj - это документы XML, поэтому XPath может показаться подходящим средством для ваших нужд. Вы можете найти введение с примерами здесь. . XPath поддерживается на широком спектре платформ, включая .NET ( пример здесь ).
Это может быть излишним для ваших нужд, и в этом случае регулярное выражение может быть именно тем, что вы ищете (существует множество учебных пособий).
Просто любопытно, чего ты пытаешься достичь?
В .NET вы можете написать что-то вроде этого:
XPathDocument Doc = new XPathDocument("foo.csproj);
XPathNavigator navigator = Doc.CreateNavigator();
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(navigator.NameTable);
namespaceManager.AddNamespace("pr", "http://schemas.microsoft.com/developer/msbuild/2003");
XPathNodeIterator iterator = navigator.Select(@"pr:Project/pr:ItemGroup/pr:Compile[@Include='AssemblyInfo.cs']", namespaceManager);
while (iterator.MoveNext())
{
// Do something interesting
}