Я пытаюсь запросить элементы из visual studio *.csproj файла. Я привел короткий пример, чтобы проиллюстрировать проблему:
// Working
string xml1 = @"<Project ToolsVersion='4.0'>
<ItemGroup Label='Usings'>
<Reference Include='System' />
<Reference Include='System.Xml' />
</ItemGroup>
</Project>";
// Not working
string xml2 = @"<Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
<ItemGroup Label='Usings'>
<Reference Include='System' />
<Reference Include='System.Xml' />
</ItemGroup>
</Project>";
XDocument doc = XDocument.Parse(xml2);
foreach (XElement element in doc.Descendants("ItemGroup"))
{
Console.WriteLine(element);
}
Строка xml1 отлично работает, xml2 ничего не возвращает. Единственная разница между этими строками - это атрибут xmlns в корневом каталоге документа.
Как мне запрашивать документы, содержащие атрибуты xmlns? Почему это проблема, когда XML-документ содержит атрибут xmlns?