XML - Introducir datos en XML ya creado

 
Vista:

Introducir datos en XML ya creado

Publicado por David R. (1 intervención) el 25/08/2011 12:06:21
Hola a todos, mis conocimientos en xml son limitados y tengo un problemilla:

Estoy usando una extensión en joomla que me crea un xml con los datos que le proporciona un componente, son items y cada item tiene los campos habituales Id, title, link, description.....El caso es que la extensión es muy buena pero el xml que crea tiene algunas carencias y necesitaría poder hacer dos cosas: una duplicar el campo Id para todos los items y luego lo renombraría, y dos necesitaría poder crear un campo nuevo para cada item al que le pondría un valor idéntico para todos (sería como una categoría).
Lo he intentado con algún editor de xml porque pensé que se podría pero no lo consigo, ¿alguna idea?

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Introducir datos en XML ya creado

Publicado por hancito2003 (1 intervención) el 08/09/2011 20:54:11
Hola.

Imagino que lo que quieres es duplicar datos que te son proporcionados por varias tablas. Veamos si nos entendemos:

Tienes una tabla que contiene un archivo para llevar a la XML. Tienes otra tabla que arrastra varios datos enlazados con el archivo de la primera tabla y otra tercera tabla que arrastra varios datos enlazados con la primera. (Permiteme hablarte de tablas porque no se que lenguaje usas y no conozco el joomla). Aun asi, los principios de programacion son los mismos:

Tabla 1:
Alimenta tu XML con los datos que son unicos, porque provienen de la tabla principal.

Tabla 2:
Esta tabla contiene 4 registros que deben ser alimentados en tu XML. El campo logico que enlaza tu tabla 1 con tus demas tablas, se llama CODIGO.

Pongo en uso tabla 2.
Voy al principio de tabla 2.
Comienzo mi busqueda descendente por mi campo CODIGO.
Aparece la primera coincidencia.
Comienzo un bucle, para que la rutina se mantenga dando vuelvas mientras la condicion de que CODIGO existe, esto hasta que codigo termine. Nosotros lo hacemos con WHILE.

DO WHILE CODIGO existe.
MiXMLCampoSalario=500.00=MiXMLCampoSalario
MiXMLCampoHorasTrabajadas=44=MiXMLCampoHorasTrabajadas
MiXMLCampoHorasExtras=15=MiXMLCampoHorasExtras
MiXMLCampoSalarioExtra=300=MiXMLCampoSalarioExtra
Salta una linea del registro
Si codigo existe todavia
LOOP (retorna al WHILE)
Si codigo ya no existe
RETURN (sal del WHILE)
ENDDO

De este modo, el empleado, asumiendo que el salario sea calculado semanal, pero los pagos se realicen mensualmente, entonces la condicion que encierra el WHILE se repetira 4 veces, considerando que un mes tiene 4 semanas, aunque ciertamente tambien hay que condicionar el bucle a la fecha. Asi, tu XML contemplara 4 veces esos datos:

MiXMLEmpleado=Antonio Caceres=MiXMLEmpleado
MiXMLDetallesSalario
MiXMLCodigo=123456=MiXMLCodigo
MiXMLCampoSalario=500.00=MiXMLCampoSalario
MiXMLCampoHorasTrabajadas=44=MiXMLCampoHorasTrabajadas
MiXMLCampoHorasExtras=15=MiXMLCampoHorasExtras
MiXMLCampoSalarioExtra=300=MiXMLCampoSalarioExtra
MiXMLDetallesSalario
MiXMLCodigo=123456=MiXMLCodigo
MiXMLCampoSalario=500.00=MiXMLCampoSalario
MiXMLCampoHorasTrabajadas=44=MiXMLCampoHorasTrabajadas
MiXMLCampoHorasExtras=15=MiXMLCampoHorasExtras
MiXMLCampoSalarioExtra=300=MiXMLCampoSalarioExtra
MiXMLDetallesSalario
MiXMLCodigo=123456=MiXMLCodigo
MiXMLCampoSalario=500.00=MiXMLCampoSalario
MiXMLCampoHorasTrabajadas=44=MiXMLCampoHorasTrabajadas
MiXMLCampoHorasExtras=15=MiXMLCampoHorasExtras
MiXMLCampoSalarioExtra=300=MiXMLCampoSalarioExtra
MiXMLDetallesSalario
MiXMLCodigo=123456=MiXMLCodigo
MiXMLCampoSalario=500.00=MiXMLCampoSalario
MiXMLCampoHorasTrabajadas=44=MiXMLCampoHorasTrabajadas
MiXMLCampoHorasExtras=15=MiXMLCampoHorasExtras
MiXMLCampoSalarioExtra=300=MiXMLCampoSalarioExtra

Espero te ayude esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar