2012-10-08 16 views
10

Bir XML belgesi oluşturmak için Groovy'un MarkupBuilder'ı kullanarak birçok örnek gördüm, ancak bunların hepsi belgedeki her öğe için statik öznitelikler kullanıyor gibi görünüyorlar (özellik isimlerinin tümü Derleme zamanı). Çalışma zamanına kadar öznitelik adlarının bilinmediği bir XML belgesi oluşturmaya çalışırsam ne olur? Henüz böyle bir problemi çözmek için sözdizimi gerektirdiğini henüz anlamadım.groovy MarkupBuilder veya StreamingMarkupBuilder için dinamik elemanlar ve öznitelikler ekleme

+0

sadece bir harita geçemez Groovy bilir Bunun yerine a anahtar daha a değerini kullanmak anlamına böylece ayraç anahtarı kaydırmak gerekiyor 'düğüm: tuşları gibi değişken isimler, yani birlikte ([(anahtar): "değer"])' –

+0

Evet! Daha önce bunu yapmaya çalışıyordum ama (harita özellikler olarak bir alt unsuru olarak eklenmiştir ve başlamıştı) benim için çalışmıyordu. Ama yanıtı ben yanlış ve yeterli ben emin yapmıyordu emin olmak için istenir. Ben harika için oldukça yeni ve ben başlangıçta bir liste olarak benim boş harita ilan edildi ([] vs [:]). İtme için teşekkürler Tim! – pneumee

+0

Np :-) Ben bu sorunun tam bir cevabı olarak yazdım :-) Ben ilk –

cevap

5

yapmalıyım anahtarları olarak nitelik adları ile bir harita.

import groovy.xml.MarkupBuilder 

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

oluşturmak istiyorsunuz:

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

teşekkürler düşündüğüm gibi çalıştı kontrol etmek istedim! Sadece FYI, çözümümde anahtarı parantez ile çevrelemedim ve hala harika çalıştı. – pneumee

+0

Çevrim içinde yapmak mümkün mü? – RredCat