2009-10-06 3 views
1

Я хочу найти файл csproj для конкретной строки через код. Как мне это сделать ?Как искать файл csproj для строки через код?

Спасибо.

+0

Что вы имеете в виду? Найдите строку в файле * .csproj или найдите файл * .csproj в файловой системе с именем/частью имени в виде строки? –

ответ

1

.csproj файлы - это документы XML, поэтому XPath будет казаться подходящим для вас автомобилем. Вы можете найти introduction with examples here.. XPath поддерживается на широком диапазоне платформ, включая .NET (example here).

Это может быть излишним для ваших нужд, и в этом случае регулярное выражение может быть именно тем, что вы ищете (там есть множество учебных пособий).

Любопытно, чего вы пытаетесь достичь?

В .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 
} 
1

это просто XML текстовый файл. Используйте любую технологию xml или текстовых файлов для ее чтения.

например. в C#

string textToFind="someText"; 
string text = File.ReadAllLines("xxx.csproj"); 
if(text.Contains(textToFind)) Console.WriteLine("found it"); 
0

попробовать это:

using(StreamReader reader = new StreamReader("Project1.csproj")) 
{ 
    string criteria = "sample"; 
    string line = ""; 
    int ln = 0; 
    while((line=reader.readLine()) != null) 
    { 
     int col = line.indexOf(criteria); 
     if(col != -1) 
      Console.WriteLine(criteria + " is found in line: " + ln + " col: " + col); 
     ln++; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^