作为CI过程的一部分,我正在尝试创建一个构建标记,它由xml结构中的xml元素的内容组成.为此我使用nant和xmlpeek.我的问题是我得到一个奇怪的错误说明:
"Nodeindex'0'超出范围"
仅当xml文件的xml文件在根节点中包含命名空间定义时才会出现这种情况.
从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>
Run Code Online (Sandbox Code Playgroud)
并且test1.xml文件如下所示:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProductVersion>9.0.21022</ProductVersion>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud) nant ×1