}
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;
}