You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xerces.apache.org by Davanzo Luca <Lu...@INSIEL.IT> on 2000/02/22 14:01:22 UTC
A more efficent way..
Hi,
I would like to use xerces-C with a PowerBuilder existing application; to do
this, I created a dll with funcionts like the following below; the problem
is that the funcion is called a lot of times, and asis it is very
inefficient, as I have to inizialize the system and theparser at every
call.. due to powerbuilder limitations, I can pass to a dll only primitive
types, not objects..
A sample funcion follows:
extern "C" __declspec(dllexport) int __stdcall getElementByTag(char *
XMLSourceBuffer, char * tag, char * destString)
{
try
{
XMLPlatformUtils::Initialize();
}
catch(const XMLException& toCatch)
{
return -1;
}
static const char* gMemBufId = "prodInfo";
MemBufInputSource* memBufIS = new MemBufInputSource
(
(const XMLByte*)XMLSourceBuffer
, strlen(XMLSourceBuffer)
, gMemBufId
, false
);
DOMParser parser;
try {
parser.parse(*memBufIS);
} catch (const XMLException& toCatch)
{
return -2;
}
DOM_Document doc = parser.getDocument();
DOM_NodeList nodeList = doc.getElementsByTagName(tag);
.......
}