В рамках процесса CI я пытаюсь создать метку build, состоящую из содержимого элемента xml в структуре xml. Для этого я использую nant и xmlpeek. Моя проблема заключается в том, что я получаю странное сообщение об ошибке с указанием:Использование xmlpeek в сценарии Nant дает нечетную ошибку
«Nodeindex„0“находится вне диапазона»
Это только в том случае, если файл XML Я xmlpeeking содержит определение пространства имен в корневой узел.
Удаление пространства имен из XML-файла дает мне результат, который я ожидаю.
Мишень Нан, который генерирует ошибку можно boild вниз:
<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>
Как указано ниже той же проблемы могут возникать при использовании xmlpoke (HTTP://stackoverflow.com/questions/2584766/nant-xmlpoke-and-unique-nodes). Странно, что я не получал никаких хитов google непосредственно в errormessage, в сочетании с ни xmlpeek, ни nant. Спасибо за ваш ответ, теперь другие люди могут не застрять в этом нечетном нарушении – VilladsR