Опитвам се да избера всички възли, използвайки root.SelectNodes()
с XPath
. За справка вижте msdn-документация.
В обяснения следния документ можете също търсете възли, които съдържат атрибути (поправете ме, ако това всъщност е грешно разбиране).
Така че използвах следния ред код:
XmlNodeList nodes = projectDoc.DocumentElement.SelectNodes("descendant::Compile[attribute::Include]");
И се опитвам да прочета следните данни:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<ItemGroup>
<Compile Include="ArrayExtensions.cs" />
<Compile Include="ArrayIterator.cs" />
<Compile Include="AutoInitializeAttribute.cs" />
<Compile Include="AutoInitializePriority.cs" />
<Compile Include="AutoRegisterAttribute.cs" />
<Compile Include="FormattableExtensions.cs" />
<Compile Include="Mathematics\PrimeNumbers.cs" />
</ItemGroup>
</Project>
Както е показано в примерния код по-горе, искам да получа всички XmlNodes, които съдържат атрибута Include. Въпреки това, когато изпълня кода си, nodes
съдържа 0 елемента.
Какво правя грешно тук?
Compile
елементи в пространството от именаhttp://schemas.microsoft.com/developer/msbuild/2003
. Има ли някаква причина да трябва да направите това в XPath? С LINQ към XML това би било тривиално. - person Jon Skeet   schedule 11.06.2014