В рамках процесса CI я пытаюсь создать метку сборки, состоящую из содержимого элемента xml внутри структуры xml. Для этого я использую nant и xmlpeek. Моя проблема заключается в том, что я получаю странную ошибку:
«Nodeindex '0' is out of range»
Это только в том случае, если xml-файл, который я xmlpeeking, содержит определение пространства имен в корневом узле.
Удаление пространства имен из XML-файла дает ожидаемый результат.
Цель nant, которая генерирует ошибку, может быть сведена к:
<target name="TDSLabel">
<property name="element" value=""/>
<echo message="Getting element" />
<xmlpeek file="C:\xxx\test1.xml" xpath="//Project/PropertyGroup/ProductVersion" property="element"/>
<echo message="The found element value was: ${element}" />
</target>
и файл test1.xml выглядит следующим образом:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProductVersion>9.0.21022</ProductVersion>
</PropertyGroup>
</Project>