Я пытаюсь выбрать конкретный узел в файле XML для сравнения его с тем же узлом в другом файле.
Я могу перемещаться по файлу, используя общие узлы, но не могу понять, как получить точный Xpath.
Вот XML:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Domain wide values -->
<PropertyGroup>
<LoggingLevel>0</LoggingLevel>
<LongTimeouts>0</LongTimeouts>
</PropertyGroup>
<ItemGroup>
<!--AB-->
<Token Include="{AB_ANALYTICSSERVER}">
<Value>Test</Value>
</Token>
<Token Include="{AB_CERTFINDVALUE}">
<Value>$(CertName)</Value>
</Token>
<Token Include="{AB_SERVICECERTFINDVALUE}">
<Value>$(CertName)</Value>
</Token>
<Token Include="{AB_CONSUMERSGROUP}">
<Value>DLG-AB-users</Value>
</Token>
<!--AB End-->
<!--Database-->
<Token Include="{Database_Domain}">
<Value>$(Domain)</Value>
</Token>
<Token Include="{Audit_Domain}">
<Value>$(Domain)</Value>
</Token>
<!--Database End-->
</ItemGroup>
</Project>
Но я явно что-то упускаю в моих запросах на основе xpath:
например.
$xmlNew.SelectNodes("/node()[1]/node()[3]/node()[2]").outerxml
Возвращает:
<Token Include="{AB_ANALYTICSSERVER}" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><Value>Test</Value></Token>
Но ни один из них ничего не возвращает:
$xmlNew.SelectNodes("/Project/ItemGroup/Token").outerxml
$xmlnew.selectnodes('//token[contains(@Include,"{AB_ANALYTICSSERVER}")]').OuterXml
Аналогично это работает:
$xmlNew.SelectNodes("/node()[1]/node()[2]/node()[2]").outerxml
но это не так:
$xmlnew.selectnodes('/Project/PropertyGroup/LongTimeouts').outerxml
нет.
Какую очевидную вещь мне не хватает? : /
Спасибо