Como parte de un proceso de CI, intento crear una etiqueta de construcción que consta del contenido de un elemento xml dentro de una estructura xml. Para este propósito estoy usando nant y xmlpeek. Mi problema es que me da un error extraño que indica:El uso de xmlpeek en la secuencia de comandos de Nant da un error impar
"Nodeindex '0' está fuera de rango"
Este es sólo el caso si el archivo XML Soy xmlpeeking contiene una definición de espacio de nombres el nodo raíz.
Eliminar el espacio de nombres del archivo xml me da la salida que espero.
El objetivo Nant que genera el error puede ser boild a:
<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>
y el archivo test1.xml se ve así:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProductVersion>9.0.21022</ProductVersion>
</PropertyGroup>
</Project>
Como se indica más adelante el mismo problema puede ocurrir cuando se utiliza xmlpoke (http://stackoverflow.com/questions/2584766/nant-xmlpoke-and-unique-nodes). Extrañamente, no recibí ninguna visita de Google directamente en el mensaje de error combinado con xmlpeek o nant. Gracias por su respuesta, ahora otras personas podrían no quedar atrapadas con ese extraño mensaje de error – VilladsR