}
node = xmlDocGetRootElement(document);
+ while (node) {
+ if (node->type == XML_ELEMENT_NODE) {
+ if (strcmp(node->name, "ARTICULOS") == 0) {
+ node = node->children;
+ break;
+ }
+ }
+ node = node->next;
+ }
/* Cuento la cantidad de articulos en el archivo */
cant = 0;
tmp->cant = cant;
tmp->array = (t_Articulo *)malloc(sizeof(t_Articulo)*cant);
+ if (tmp->array == NULL) {
+ xmlFreeDoc(document);
+ xmlCleanupParser();
+ free(tmp);
+ return NULL;
+ }
+
node = xmlDocGetRootElement(document);
+ while (node) {
+ if (node->type == XML_ELEMENT_NODE) {
+ if (strcmp(node->name, "ARTICULOS") == 0) {
+ node = node->children;
+ break;
+ }
+ }
+ node = node->next;
+ }
/* leo los datos */
cant = 0;
for ( ; node ; node = node->next) {
if (node->type == XML_ELEMENT_NODE) {
if (strcmp(node->name, "ARTICULO") == 0) {
- strncpy(tmp->array[cant].numero, xmlGetProp(node, "NroArtículo"), 8);
- strncpy(tmp->array[cant].desc, xmlGetProp(node, "Descripción"), 50);
- strncpy(tmp->array[cant].presentacion, xmlGetProp(node, "Presentación"), 30);
+ strncpy(tmp->array[cant].numero, xmlGetProp(node, "NroArticulo"), 8);
+ strncpy(tmp->array[cant].desc, xmlGetProp(node, "Descripcion"), 50);
+ strncpy(tmp->array[cant].presentacion, xmlGetProp(node, "Presentacion"), 30);
strncpy(tmp->array[cant].existencia, xmlGetProp(node, "Existencia"), 8);
- strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicación"), 30);
+// strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicacion"), 30);
strncpy(tmp->array[cant].pvu, xmlGetProp(node, "PVU"), 8);
- strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emín"), 8);
+ strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emin"), 8);
++cant;
}
}
t_Articulo *art_obtener(t_LstArticulos *lst, const char *numero)
{
+ int i, j;
+ int n = atoi(numero);
+ for(i=0; i<lst->cant; i++) {
+ j = atoi(lst->array[i].numero);
+ if (n == j)
+ return &lst->array[i];
+ }
+
return NULL;
}
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <string.h>
+#include "malloc_debug.h"
/* FACTURAS!!
char numero[9];
<?xml version="1.0" encoding="ISO-8859-1" ?>\r
<ARTICULOS>\r
- <ARTICULO NroArtículo="438" Descripción="Tallarines al Huevo Don Vicente" \r
- Presentación="Caja 6 Paquetes 500 g." Existencia="27" PVU="12,80" Emín="10"/>\r
- <ARTICULO NroArtículo="439" Descripción="Tallarines con Espinaca Don Vicente" \r
- Presentación="Caja 6 Paquetes 500 g." Existencia="19" PVU="14,50" Emín="0"/>\r
- <ARTICULO NroArtículo="440" Descripción="Tallarines con Morrón Don Vicente" \r
- Presentación="Paquete 500 g." Existencia="14" PVU="14,50" Emín="0"/>\r
- <ARTICULO NroArtículo="742" Descripción="Mayonesa Hellman's" Presentación="Frasco 500 g." Existencia="16" PVU="5,50" Emín="10"/>\r
- <ARTICULO NroArtículo="743" Descripción="Mayonesa Hellman's" \r
- Presentación="Pack 2 Frascos 250 g." Existencia="12" PVU="5,80" Emín="10"/>\r
+ <ARTICULO NroArticulo="438" Descripcion="Tallarines al Huevo Don Vicente" \r
+ Presentacion="Caja 6 Paquetes 500 g." Existencia="27" PVU="12,80" Emin="10" />\r
+ <ARTICULO NroArticulo="439" Descripcion="Tallarines con Espinaca Don Vicente" \r
+ Presentacion="Caja 6 Paquetes 500 g." Existencia="19" PVU="14,50" Emin="0" />\r
+ <ARTICULO NroArticulo="440" Descripcion="Tallarines con Morrón Don Vicente" \r
+ Presentacion="Paquete 500 g." Existencia="14" PVU="14,50" Emin="0" />\r
+ <ARTICULO NroArticulo="742" Descripcion="Mayonesa Hellman's" Presentacion="Frasco 500 g." Existencia="16" PVU="5,50" Emin="10" />\r
+ <ARTICULO NroArticulo="743" Descripcion="Mayonesa Hellman's" \r
+ Presentacion="Pack 2 Frascos 250 g." Existencia="12" PVU="5,80" Emin="10" />\r
</ARTICULOS>\r
\r
\r
WINDOW *mainwin;
t_Form *form;
t_LstArticulos *articulos;
+ t_Articulo *art;
articulos = art_cargar(argv[1]);
/* Creo el formulario */
form = form_crear(mainwin);
- form_agregar_widget(form, INPUT, "Nombre", 15, "");
- form_agregar_widget(form, RADIO, "Voto", 3, "Si,No,No Corresponde");
- form_agregar_widget(form, INPUT, "Datos", 30, "");
+ form_agregar_widget(form, INPUT, "Numero de Articulo", 8, "");
form_ejecutar(form, 10, 10);
delwin(mainwin);
endwin();
+ art = art_obtener(articulos, form_obtener_valor(form, "Numero de Articulo"));
+
/* Imprimo los datos! */
- printf("Datos Ingresados : \n");
- printf("\tNombre : %s\n", form_obtener_valor(form, "Nombre"));
- printf("\tVoto : %s\n", form_obtener_valor(form, "Voto"));
- printf("\tDatos : %s\n", form_obtener_valor(form, "Datos"));
-
+ printf("Datos : \n");
+ if (art != NULL) {
+ printf("\tDescripcion : %s\n", art->desc);
+ printf("\tPresentacion : %s\n", art->presentacion);
+ printf("\tExistencia : %s\n", art->existencia);
+ } else {
+ printf("NO EXISTE!\n");
+ }
/* Libero el formulario */
form_destruir(form);
art_liberar(articulos);