2012-03-20 23 views
6

एक सीआई प्रक्रिया मैं एक buildlabel एक xml ढांचे के भीतर एक xml तत्व की सामग्री के होते हैं जो बनाने के लिए कोशिश कर रहा हूँ के हिस्से के रूप देता है। इस उद्देश्य के लिए मैं नेंट और एक्सएमएलपीक का उपयोग कर रहा हूं।का उपयोग xmlpeek अजीब त्रुटि

"Nodeindex '0' श्रेणी से बाहर है"

यह केवल मामला है अगर xml फ़ाइल मैं xmlpeeking हूँ में एक नाम स्थान परिभाषा में शामिल हैं: मेरी समस्या यह है कि मैं एक अजीब त्रुटि बताते हुए मिलता है रूट नोड।

xml फ़ाइल से नाम स्थान निकाला जा रहा है मुझे उत्पादन मैं उम्मीद देता है।

nant लक्ष्य उत्पन्न करता है कि त्रुटि के लिए नीचे 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> 

उत्तर

5

आप पहले से ही अधिकार दिया खुद के संकेत। यह नामस्थान के बारे में है। यह इसे ठीक करना चाहिए:

<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

एक ही समस्या नीचे कहा गया है होते हैं जब xmlpoke का उपयोग कर सकता है (http://stackoverflow.com/questions/2584766/nant-xmlpoke-and-unique-nodes)। आश्चर्यजनक रूप से मुझे बिना किसी xmlpeek या nant के साथ संयुक्त त्रुटि पर सीधे कोई भी Google हिट नहीं मिला। आपके उत्तर के लिए धन्यवाद, अब अन्य लोग उस अजीब गड़बड़ी से फंस नहीं सकते हैं – VilladsR

0

मिले एक समान समस्या और मेरी समस्या यहाँ करने के लिए anwser: XmlPoke and unique nodes। समस्या यह थी कि मैं xmlpeek तत्व के भीतर नाम स्थान परिभाषा शामिल नहीं किया था और बाद में मेरी 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> 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^