2012-10-08 3 views
10

ग्रोवी के लिए गतिशील तत्वों और विशेषताओं को जोड़ना मैंने XML दस्तावेज़ बनाने के लिए ग्रोवी के मार्कअपबिल्डर का उपयोग करके कई उदाहरण देखे हैं, लेकिन वे सभी दस्तावेज़ में प्रत्येक तत्व के लिए स्थिर विशेषताओं का उपयोग करते हैं (विशेषता नाम सभी को ज्ञात हैं संकलन समय)। क्या होगा यदि मैं एक XML दस्तावेज़ बनाने की कोशिश कर रहा हूं जहां विशेषता नाम रनटाइम तक ज्ञात नहीं हैं? मैंने अभी तक इस तरह की समस्या को हल करने के लिए सिंटैक्स की आवश्यकता नहीं है।मार्कअपबिल्डर या स्ट्रीमिंगमार्कक्यूल्डर

+0

तुम सिर्फ एक नक्शा पारित नहीं हो सकता आप ब्रेसिज़ में महत्वपूर्ण रैप करने के लिए इतना है कि ग्रूवी जानता है आप के बजाय कुंजी aa के मूल्य का उपयोग करने के लिए मतलब है की जरूरत है चर के रूप में चर नामों के साथ, यानी: 'नोड ([(कुंजी):" मूल्य "])' –

+0

हाँ! मैं पहले ऐसा करने की कोशिश कर रहा था, लेकिन यह मेरे लिए काम नहीं कर रहा था (नक्शा उप-तत्व के रूप में जोड़ा जा रहा था और विशेषताओं के रूप में नहीं)। लेकिन आपकी प्रतिक्रिया ने मुझे यह सुनिश्चित करने के लिए प्रेरित किया कि मैं यह गलत नहीं कर रहा था और यकीन है कि मैं पर्याप्त था। मैं ग्रोवी के लिए काफी नया हूं, और शुरुआत में मैं अपना खाली नक्शा एक सूची के रूप में घोषित कर रहा था ([] बनाम [:])। धक्का, समय के लिए धन्यवाद! – pneumee

+0

एनपी :-) मैंने इसे प्रश्न के उत्तर के रूप में पूरी तरह से लिखा है :-) मैं इसे देखना चाहता था क्योंकि मैंने पहले सोचा था कि –

उत्तर

5

गुणों के नाम के साथ एक नक्शा कुंजी के रूप में करना चाहिए।

import groovy.xml.MarkupBuilder 

new MarkupBuilder().root { 
    def a = 'dynAttr' 
    node([ (a):'woo' ]) 
} 

उत्पन्न होगा:

<root> 
    <node dynAttr='woo' /> 
</root> 
+0

धन्यवाद! बस एफवाईआई, मेरे समाधान में मैंने ब्रेसिज़ के साथ कुंजी को घेर लिया नहीं और यह अभी भी बहुत अच्छा काम करता है। – pneumee

+0

क्या यह चक्र में ऐसा करना संभव है? – RredCat

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