[ Foro de C# ]

Gestionar Xml

18-Jul-2014 20:01
Invitado (Cronos970)
6 Respuestas

Saludos,
Quisiera saber si es posible cojer un documento de word(.doc) convertirlo a xml y poder guardar algunos datos de este en una base de datos de sqlserver.

ejemplo
El formato de una hoja de vida
y quiero guardar en la tabla  llamada hoja de vida con los campos  nombre, Estudios, experiencia, etc
(Todo esto con solo convertir el doc a xml)

Agradeceria si me dieran respuesta!


19-Jul-2014 11:18
Nacho Cabanes (+84)

El formato .DOC es complejo, no podrás manipularlo directamente con facilidad (quizá sí con algunos servicios de .Net un poco más avanzados).

La alternativa más razonable es guardar a fichero de texto (.TXT), que te será más fácil analizar y manipular, tanto si ese fichero de texto ya contiene los datos en XML como si son datos estructurados en otro formato más arbitrario (por ejemplo, cada campo en una línea, y una línea adicional en blanco entre un registro y otro).

Si los datos están en formatos "menos estructurados" como ese, podrías generar a partir de ellos un XML que puedas importar en SQL Server, o incluso generar una secuencia de órdenes SQL.


19-Jul-2014 21:37
Invitado (Cronos970)

Amigo ya conseguí convertir el .DOC a .TXT pero al momento de convertir el TXT a XML no logro que tenga una estructura que pudiera manejar con facilidad, (Solo quiero identificar los campos nombre, Experiencia y estudios) y guardar cada uno en un registro diferente.

Todas las hojas de Vida tienen el mismo formato (PDF de ejemplo)

Nota
Si hay otra manera de hacerlo que no sea por XML Bienvenida!


Gracias por  su colaboración!


19-Jul-2014 21:52
Nacho Cabanes (+84)

He eliminado el enlace a tu PDF, porque tiene datos personales. En su lugar, "copia y pega" aquí el contenido del fichero de texto, censurando los datos personales y poniendo en su lugar algo como XXXXX.


19-Jul-2014 22:05
Invitado (Cronos970)

El contenido del documento en .TXT seria algo como esto y solo deseo coger los campos del nombre, que  experiencia tiene y sus estudios.


"   Actualizado el 25 de abril de 2014    xxxx xxxx  XX de agosto de XX (xx años) Soltero/a  xxx, xxx, Buenos Aires, Argentina  (xx) xxxxxxx / (xx) xxxxxx  xxxxxx@hotmail.com      Me gustaría demostras mis cualidades de responsabilidad, dedicación y respecto en el nucleo de trabajo.  Si tengo q eligir me gustaría destacarme en la parte administrativa, tengo buen trato, paciencia y soy  tolerante con las personas. El trabajar con los niños,es interezante tambien.  Experiencia    Melodias  (Comercio)  Encargada de libreria y maxikiosco  may 2004 - Actualmente  xxxxxxx  Me encargaba de tareas generales, ventas de productos, distribucción, reposición y  atencion al cliente.  2 Personas a cargo.  Estudios    xxxxxxxx   Psicopedagogo  mar xxx - Actualmente  Argentina  Psicopedagogía  Terciario 31% Promedio7.0      Instituto superior xxxx  y  sociales  Consultor psicológico  mar 2009 - Actualmente  Argentina  Psicología  Terciario 86% Promedio8.0    Preferencias Salariales  Salario neto: $2700 por mes.  Conocimientos    Inglés: Escrito Intermedio  Inglés: Oral Intermedio  Portugués: Escrito Intermedio  Portugués: Oral Intermedio  Office: Manejo Básico   Datos personales    ? D.N.I.: xxxxx  ? Dirección: xxxxxx, xxxxxx, Buenos Aires, Argentina  ? Teléfono celular: (xxx) xxxxxxx  ? Teléfono: (xxx) xxxxxx  ? Estado civil: Soltero/a  ? E-mail: xxxxx@hotmail.com    Referencias     Ex jxxx  xxx xxxxx o  xxxxxx "


23-Jul-2014 16:19
Nacho Cabanes (+84)

Ah, vale, esa "hoja de vida" es lo que yo conozco como "Curriculum Vitae".

Una vez que lo tienes en formato TXT, podrías leer línea a línea (con un StreamReader), buscando palabras clave (con IndexOf) y extrayendo fragmentos (con Substring).

El problema es que normalmente son documentos poco estructurados:

- Hay quien escribe antes la experiencia que los estudios y quien lo hace al revés.
- Hay quien incluye sus datos personales en primer lugar (lo habitual en España) y quien los pone al final (como en tu ejemplo).
- Se pueden usar distintos nombres para cada apartado: "experiencia", "experiencia laboral", "experiencia profesional", "trabajos previos", etc.

Tanta variabilidad hace que no sea fácil programar un importador que siempre funcione.


24-Jul-2014 02:39
Invitado (Cronos)

Amigo Tratare de hacer lo que tu dices de  leer línea a línea (con un StreamReader), buscando palabras clave (con IndexOf) y extrayendo fragmentos (con Substring).
Igual Todas Los Curriculum Vitae manejan una misma estructura:

Nombre
Experiencia
Estudios
conocimientos  y datos personales.

Muchas Gracias!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)