2012-03-20 18 views
6

W ramach procesu CI próbuję utworzyć tablicę buildów, która składa się z treści elementu xml w strukturze xml. W tym celu używam nant i xmlpeek. Moim problemem jest to, że mam dziwny błąd informujący:Użycie xmlpeek w skrypcie Nant daje nieparzysty błąd

„Nodeindex«0»jest poza zasięgiem”

To jest tylko w przypadku, gdy plik xml Jestem xmlpeeking zawiera definicję przestrzeni nazw w węzeł główny.

Usunięcie przestrzeni nazw z pliku xml daje mi wynik, którego oczekuję.

Cel nant, który generuje błąd można boild dół:

<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> 

a plik test1.xml wygląda następująco:

<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <ProductVersion>9.0.21022</ProductVersion> 
    </PropertyGroup> 
</Project> 

Odpowiedz

5

Już dał prawo wskazówka siebie. Chodzi o przestrzeń nazw. To powinno go naprawić:

<target name="TDSLabel"> 
    <property name="element" value=""/> 
    <echo message="Getting element" /> 
    <xmlpeek 
    file="C:\xxx\test1.xml" 
    xpath="//x:Project/x:PropertyGroup/x:ProductVersion" 
    property="element" 
    verbose="true"> 
    <namespaces> 
     <namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" /> 
    </namespaces> 
    </xmlpeek> 
    <echo message="The found element value was: ${element}" /> 
</target> 
+0

jak nizej ten sam problem może wystąpić podczas korzystania xmlpoke (http://stackoverflow.com/questions/2584766/nant-xmlpoke-and-unique-nodes). Dziwnie nie dostałem żadnych trafień google bezpośrednio na errormessage w połączeniu z ani xmlpeek ani nant. Dzięki za odpowiedź, teraz inne osoby mogą nie utknąć z tym dziwnym błędem – VilladsR

0

Znaleziony podobny problem i anwser na mój problem: XmlPoke and unique nodes. Problem polegał na tym, że nie zawierają definicji przestrzeni nazw w elemencie xmlpeek a następnie pominięto niezbędne odniesienia do nazw w moim oświadczeniu XPath:

<xmlpeek file="C:\xxx\test1.xml" xpath="//x:Project/x:PropertyGroup/x:ProductVersion" property="element"> 
    <namespaces> 
     <namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" /> 
    </namespaces> 
</xmlpeek> 
Powiązane problemy