Me disculpo de antemano si no estoy pidiendo esto correctamente .. es difícil de poner en palabras lo que estoy pidiendo ..XForms y múltiples entradas para la etiqueta mismo modelo
Tengo modelo XForms tales como:
<file>
<criteria>
<criterion></criterion>
</criteria>
</file>
Quiero tener varios cuadros de texto de entrada que crean una nueva etiqueta de criterio.
interfaz de usuario, tales como:
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
Y me gustaría que la salida XML a tener este aspecto (una vez que el usuario ha entrado en información):
<file>
<criteria>
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>CCC</criterion>
</criteria>
</file>
La manera que tengo que doesn' t funciona, ya que los 3 campos de entrada se refieren a la misma etiqueta de criterio. ¿Cómo me diferencio?
Gracias! ¡Espero que tenga algún sentido!
empezar Primeros EDITAR
Gracias por las respuestas para el cuadro de texto básico!
Sin embargo, ahora necesito hacer esto con un cuadro de lista. Pero por mi vida, no puedo entender cómo. Leí en alguna parte para usar con las formas: seleccionar y anular la selección de eventos ... pero no sabía dónde colocarlos, y los lugares que probé me dieron un comportamiento muy extraño.
actualmente estoy poniendo en práctica lo siguiente:
<xf:select ref="instance('criteria_data')/criteria/criterion" selection="" appearance="compact" >
<xf:label>Choose criteria</xf:label>
<xf:itemset nodeset="instance('criteria_choices')/choice">
<xf:label ref="@label"></xf:label>
<xf:value ref="."></xf:value>
</xf:itemset>
</xf:select>
Sin embargo, cuando se presentan varias opciones, todos los valores de selección se insertan en el mismo nodo, separados por espacios.
Por ejemplo:
Si se seleccionaron AAA y BBB y FFF del cuadro de lista, que daría lugar a la siguiente XML:
<criterion>AAA BBB FFF</criterion>
¿Cómo cambiar el código para que cada selección sea en una nodo separado?
decir que quiere que se vea como esto:
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>FFF</criterion>
Gracias!
primer extremo EDITAR
COMENZAR SEGUNDO EDIT:
Para los cuadros de lista (es decir, xf: seleccione apariencia = "compacto") Terminé permitiendo que los espacios que se producen en el mismo nodo y luego simplemente transformó ese xml usando xsl para generar un nuevo documento XML correctamente formateado (con nodos individuales separados). Desafortunadamente, no encontré una solución menos engorrosa al insertarlos originalmente en nodos separados.
La respuesta seleccionada funciona muy bien para los cuadros de texto, de ahí que la haya seleccionado como respuesta.
FIN SEGUNDA EDICIÓN
Gracias! Esto funciona muy bien con mis cuadros de texto. Supongo que puedo hacer algo similar con un cuadro combinado entonces? (es decir, seleccionar varias cosas de un cuadro combinado y convertirlas en un nuevo criterio). – developer
@iHeartGreek, sí exactamente. Puedes tener todo lo que quieras dentro de ''. –
avernet
Intenté esta solución trabajando con el listbox (usando xforms: select) pero no puedo resolverlo. También leí que debería usar las xforms: seleccionar y anular la selección de eventos, pero obtuve un comportamiento extraño con eso. (Consulte mi edición anterior para obtener más información sobre mi nuevo problema) – developer