xmlDoc

7.13.1
Tool per la gestione degli XML in modo rapido, lettura e scrittura.
/ehtool/xmlDoc.c
xmlParse.c è una prima versione limitata che non lavora con i nodi.
xmlDoc.c è molto più veloce e permettere di operare meglio sui nodi e di modificarli.
Per tenere la compatibilità con il vecchio codice le funzioni sono state rinominate con una doppia x.
E' possibile quindi usare xmlDoc insieme a xmlParser, cambiando (se non si vuole rifare) le funzioni del vecchio codice con quelle xx (vedi xmlParser.h: es. xxmlDoc(), xxmlArrayFree(), xxmlGetAttrib() ecc.)

Macro


Esempio

void currencyUpdate(void)
{
	XMLD * pxDoc;
	SQL_RS rsSet;
	EH_WEB *psWeb;
	EH_LST lst;
	EH_LST lstJava;
	CHAR * psz;
	double dDollarEur=0;

	psWeb=webHttpReq("https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml","GET",NULL,FALSE,0,0);
	if (!psWeb->sError.enCode) { 

		INT a;
		XMLARRAY arxCube;
		pxDoc=xmlOpen(psWeb->pData,1,true);
		
		arxCube=xmlArrayAlloc(pxDoc,xmlGetd(pxDoc,NULL,"Envelope.Cube.Cube"),true,NULL);
		for (a=0;arxCube[a];a++) {
		
			CHAR * lpCurrency=xmlGetAttrib(arxCube[a],"currency");
			CHAR * lpRate=xmlGetAttrib(arxCube[a],"rate");

			if (!strcmp(lpCurrency,"USD")) dDollarEur=atof(lpRate);

			sql_query("UPDATE currencies SET cambio=%f,tsUpd=NOW() WHERE code='%s'",atof(lpRate),lpCurrency);

		}
		xmlArrayFree(arxCube);
		xmlClose(pxDoc,false);
		printf("Aggiornamento BCE ok." CRLF);
	}
	else
	{
		ehLogWrite("Aggiornamento valute: errore %d:%s",psWeb->sError.enCode,psWeb->sError.szDesc);
	}
	webHttpReqFree(psWeb);


See also:
Easyhand C/C++: xmlDoc | Last modified: 30/06/2022 19.20.31 Europe/Rome | #1.3164
P.. 1373
Easyhand C/C++
Una mano alle tue idee.
Privacy Policy