Altova MapForce 2027 Professional Edition

Ejemplo: Reemplazar títulos de puestos de trabajo

Inicio Anterior Inicio Siguiente

En este ejemplo aprenderá cómo reemplazar valores de elementos específicos en un archivo XML con ayuda de componentes de asignación de valores (es decir, usando una tabla de consulta predefinida).

 

El archivo XML necesario para este ejemplo se encuentra en la siguiente ruta: <Documentos>\Altova\MapForce2027\MapForceExamples\DocExamples\MFCompany.xml. Además de otros datos, este archivo almacena información sobre los empleados de la empresa y sus puestos de trabajo, por ejemplo:

 

<Person>
  <First>Michelle</First>
  <Last>Butler</Last>
  <Title>Software Engineer</Title>
</Person>
<Person>
  <First>Lui</First>
  <Last>King</Last>
  <Title>Support Engineer</Title>
</Person>

<Person>
  <First>Steve</First>
  <Last>Meier</Last>
  <Title>Office Manager</Title>
</Person>

 

Imagine que necesita reemplazar algunos de esos puestos de trabajo en el archivo XML que hemos mencionado más arriba. En concreto, debe reemplazar "Software Engineer" (Ingeniero de software) por "Code Magician" (Mago del código). También el título "Support Engineer" (Ingeniero de soporte) se debe sustituir por "Support Magician" (Mago del soporte). El resto de puestos de trabajo permanece sin cambios.

 

Para conseguir este objetivo debe añadir el archivo XML al área de asignación: haga clic en el botón de la barra de herramientas Insertar archivo o esquema XML ic-new-schema o en el comando de menú Insertar archivo o esquema XML. A continuación, copie y pegue el componente XML en la asignación y cree las conexiones como se muestra en la imagen siguiente. Puede que primero necesite desactivar la opción Conectar automáticamente los secundarios equivalentes ic-conn-child para evitar que se creen automáticamente conexiones innecesarias.

mf_lookup_06

La asignación creada hasta ahora se limita a copiar los elementos Person al archivo XML de destino, sin hacer ningún cambio en los elementos First, Last y Title.

 

Para reemplazar los puestos de trabajo en cuestión debe añadir un componente de asignación de valores. Haga clic con el botón derecho en la conexión entre los dos elementos Title y seleccione Insertar asignación de valores en el menú contextual. Defina las propiedades de la asignación de valores como en la imagen:

mf_lookup_07

Según la configuración anterior, cada instancia de "Software Engineer" se reemplaza con "Code Magician" y cada instancia de "Support Engineer" se reemplaza con "Support Magician". Observe que aún no se ha especificado la condición Otherwise. Por este motivo, la asignación de valores devuelve un nodo vacío siempre que el puesto de trabajo no sea "Software Engineer" ni "Support Engineer". En consecuencia, si hace clic en la pestaña Resultados y accede a la vista previa de la asignación, en algunos de los elementos Person faltará el Title, por ejemplo:

 

<Person>
  <First>Vernon</First>
  <Last>Callaby</Last>
</Person>
<Person>
  <First>Frank</First>
  <Last>Further</Last>
</Person>

<Person>
  <First>Michelle</First>
  <Last>Butler</Last>

  <Title>Code Magician</Title>
</Person>

 

Como se ha indicado anteriormente, los nodos vacíos provocan que falten entradas en el resultado generado; por lo tanto, en el fragmento XML anterior, solo a Michelle Butler se le cambió el título del puesto de trabajo, ya que su puesto de trabajo figuraba en la tabla de búsqueda. La configuración creada hasta ahora sigue sin cumplir el requisito original. La configuración correcta sería esta:

mf_lookup_09

Con la configuración de la imagen anterior ocurre lo siguiente al ejecutar la asignación:

 

•Cada instancia de "Software Engineer" se reemplaza con "Code Magician"

•Cada instancia de "Support Engineer" se reemplaza con "Support Magician"

•Si el puesto original no se encuentra en la tabla de búsqueda, la asignación de valores lo devolverá sin cambios.

 

Solo a efectos ilustrativos podemos cambiar también los puestos de trabajo que no sean "Software Engineer" o "Support Engineer" por un valor personalizado, por ejemplo "n/a". Para ello debe definir las propiedades de la asignación de valores como en la imagen siguiente:

mf_lookup_08

Si ahora accede a una vista previa de la asignación, en el resultado aparecen todos los puestos de trabajo, pero aquellos que no coincidan con los dos que se han definido aparecen con el valor "n/a", por ejemplo:

 

<Person>
  <First>Vernon</First>
  <Last>Callaby</Last>
  <Title>N/A</Title>
</Person>
<Person>
  <First>Frank</First>
  <Last>Further</Last>
  <Title>N/A</Title>
</Person>
<Person>
  <First>Michelle</First>
  <Last>Butler</Last>
  <Title>Code Magician</Title>
</Person>

 

Con esto concluye el ejemplo de uso de una asignación de valores. Aplicando la lógica anterior, ya podrá obtener el resultado deseado en otras asignaciones.

© 2020-2026 Altova GmbH