He visto muchos ejemplos usando Groovy's MarkupBuilder para compilar un documento XML, pero todos parecen usar atributos estáticos para cada elemento del documento (todos los nombres de atributos se conocen en tiempo de compilación). ¿Qué sucede si estoy tratando de construir un documento XML donde los nombres de los atributos no se conocen hasta el tiempo de ejecución? Todavía no he descubierto la sintaxis requerida para resolver un problema como este.Agregar elementos y atributos dinámicos a Groovy MarkupBuilder o StreamingMarkupBuilder
10
A
Respuesta
5
Un mapa con los nombres de atributos como claves debería hacerlo. Es necesario para envolver la llave en los apoyos para que Groovy sabe que significas para utilizar el valor de a
en lugar de la tecla a
:
import groovy.xml.MarkupBuilder
new MarkupBuilder().root {
def a = 'dynAttr'
node([ (a):'woo' ])
}
generaría:
<root>
<node dynAttr='woo' />
</root>
Cuestiones relacionadas
- 1. Navegador y elementos dinámicos
- 2. Agregar atributos múltiples a elementos usando Jade
- 3. ¿Cómo puedo insertar un comentario xml con Groovy MarkupBuilder?
- 4. Atributos dinámicos con Rails y Mongoid
- 5. Expresiones JSP y nombres de atributos dinámicos
- 6. ¿Está bien agregar sus propios atributos a elementos HTML?
- 7. XSD: Agregar atributos a elementos "simples" fuertemente tipados
- 8. ¿Cómo agregar atributos adicionales a los elementos XAML estándar?
- 9. Usando .on() y e.stopPropagation() en elementos dinámicos
- 10. Nombres de elementos dinámicos
- 11. Cargando elementos seleccionados "elegidos" dinámicos
- 12. jQuery problema selector de atributos: selector de atributos dinámicos
- 13. Groovy agregar código a un constructor
- 14. Elementos dinámicos en bash PS1
- 15. Panel ExtJs: agregar componentes dinámicos
- 16. dinámicos LINQ o condiciones
- 17. Elemento XSD con atributos y elementos secundarios
- 18. Agregar elementos SVG o HTML5 existentes a Box2D World
- 19. elementos XML vs Atributos
- 20. Creación de un esquema XML con atributos y elementos contingentes a otros atributos
- 21. Convertir atributos XML a elementos XSLT
- 22. maravilloso MarkupBuilder conflicto de nombres
- 23. Mezcla de elementos de menú XAML dinámicos y estáticos
- 24. métodos jQuery 1.7 on() y off() para elementos dinámicos
- 25. ¿Agregar elementos a un ListView?
- 26. Agregar atributos a un nodo XML
- 27. UIMenuItems dinámicos con @selector y métodos dinámicos
- 28. ¿Cómo agregar documentación a los atributos personalizados?
- 29. Groovy + OSGi o Grails?
- 30. Mecanografía explícita en Groovy: ¿a veces o nunca?
no puedes pasar un mapa con nombres de variables como claves, es decir: 'nodo ([(clave):" valor "])' –
¡Sí! Intentaba hacer eso anteriormente, pero no funcionaba para mí (el mapa se agregaba como un subelemento y no como atributos). Pero su respuesta me impulsó a asegurarme de que no lo estaba haciendo mal y, por supuesto, lo estaba haciendo. Soy bastante nuevo en Groovy, y inicialmente estaba declarando mi mapa vacío como una lista ([] vs [:]). Gracias por el empuje, tim! – pneumee
Np :-) Lo he escrito en su totalidad como respuesta a la pregunta :-) Quería comprobar que funcionó ya que pensé primero –