ant - चींटी xmlproperty कार्य क्या होगा जब एक ही नाम के साथ एक से अधिक टैग हों?




(2)

जब एकाधिक तत्वों का एक ही नाम होता है, <xmlproperty> अल्पविराम से अलग किए गए मानों के साथ एक संपत्ति बनाता है:

<project name="ant-xmlproperty-with-multiple-matching-elements" default="run" basedir=".">
    <target name="run">
        <xmlproperty file="example.xml" prefix="PREFIX" />

        <echo>${PREFIX.main.tagList.tag.file}</echo>
    </target>
</project>

परिणाम:

run:
     [echo] file1,file2

कॉमा से अलग किए गए मानों की प्रक्रिया करने के <for> , तीसरे पक्ष के एंटी-लायब्रेरी लाइब्रेरी से <for> कार्य का उपयोग करने पर विचार करें:

<project 
    name="ant-xmlproperty-with-multiple-matching-elements" 
    default="run" 
    basedir="." 
    xmlns:ac="antlib:net.sf.antcontrib"
    >
    <taskdef resource="net/sf/antcontrib/antlib.xml" />
    <target name="run">
        <xmlproperty file="example.xml" prefix="PREFIX" />

        <ac:for list="${PREFIX.main.tagList.tag.file}" param="file">
            <sequential>
                <echo>@{file}</echo>
            </sequential>
        </ac:for>
    </target>
</project>

परिणाम:

run:
     [echo] file1
     [echo] file2

मैं एक बड़ी चींटी का निर्माण करने का प्रयास कर रहा हूं जो मुझे दिया गया है, और मुझे इस मामले में एक्सएमएलप्रॉपर्टी की कार्यक्षमता को समझने में परेशानी हो रही है। इस एक्सएमएल फ़ाइल पर विचार करें, example.xml

<main>
  <tagList>
    <tag>
      <file>file1</file>
      <machine>machine1</machine>
    </tag>
    <tag>
      <file>file2</file>
      <machine>machine2</machine>
    </tag>
  </tagList>
</main>

बिल्डफाइल में, एक ऐसा कार्य है, जिसे इस उदाहरण के लिए निम्न में सरलीकृत किया जा सकता है:

<xmlproperty file="example.xml" prefix="PREFIX" />

जैसा कि मैं समझता हूं, अगर केवल एक <tag> तत्व था, तो मैं ${PREFIX.main.tagList.tag.file} साथ <file> की सामग्री प्राप्त कर सकता था क्योंकि यह लगभग लिखने के बराबर है:

<property name="PREFIX.main.tagList.tag.file" value="file1"/>

लेकिन जैसा कि दो <tag> , इस मामले में ${PREFIX.main.tagList.tag.file} का मूल्य क्या है? यदि यह कुछ प्रकार की सूची है, तो मैं दोनों <file> मानों से कैसे पुनरावृत्त करूं?

मैं चींटी का उपयोग कर रहा हूँ 1.6.2।


यदि आप TIBCOJaspersoftStudio का उपयोग कर रहे हैं:

  1. नवीनतम ग्रूवी 2.4 डाउनलोड करें। * जार http://groovy-lang.org/download.html
  2. अनपैक करें और इस फ़ाइल को प्राप्त करें ।/groovy-2.4.10/embeddable/groovy-all-2.4.10.jar
  3. जार को ./TIBCOJaspersoftStudio-6.3.1.final/plugins पर रखें
  4. पुराने जार को हटा दें: /TIBCOJaspersoftStudio-6.3.1.final/plugins/groovy-all_2.4.5.jar




xml ant