Re: Event callbacks for every Tag

Régis St-Gelais (Laubrass) <[email protected]>
Newsgroups gmane.text.xml.expat.general
Message-ID <000c01c75680$94a6f200$6500a8c0@laubrasssag1>
----- Original Message ----- 
From: Mukesh Kumar
To: Régis St-Gelais (Laubrass)
Sent: Thursday, February 22, 2007 7:36 AM
Subject: RE: [Expat-discuss] Event callbacks for every Tag

>You mean user defined functions or r u talking about performance or can you 
>tell me whether you are able to parse the xml file or not ?

Mukesh,

If I understood correctly your question was:
can I call a different function for each tag ?

Here is a more detailed sample code:

static void XMLhndl_ElementEnd(void *userData, const char *strElement);
static void XMLhndl_ElementEnd_Tag1(void *userData, const char *strElement);
static void XMLhndl_ElementEnd_Tag2(void *userData, const char *strElement);

static void XMLhndl_ElementEnd(void *userData, const char *strElement)    // 
This is tha callback called by expat
 {
 if (strcmp(strElement,"TAG1")==0)
  {
  XMLhndl_ElementEnd_Tag1(userData,strElement);    // Call your own fonction 
when TAG1 is found
  return;
  }

 if (strcmp(strElement,"TAG2")==0)
  {
  XMLhndl_ElementEnd_Tag2(userData,strElement);    // Call your own fonction 
when TAG2 is found
  return;
  }
}

static void XMLhndl_ElementEnd_Tag1(void *userData, const char *strElement)
 {
// do some thing with tag 1 data
 }

static void XMLhndl_ElementEnd_Tag2(void *userData, const char *strElement)
 {
// do some thing with tag 2 data
 }

If this does not do what you want, then I don't undestand your question.

Regis St-Gelais
www.laubrass.com


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Régis St-Gelais 
(Laubrass)
Sent: Thursday, February 22, 2007 5:51 PM
To: Mandeep Ahuja; [email protected]
Subject: Re: [Expat-discuss] Event callbacks for every Tag


----- Original Message ----- 
  From: Mandeep Ahuja
  To: [email protected]
  Sent: Wednesday, February 21, 2007 7:27 PM
  Subject: [Expat-discuss] Event callbacks for every Tag


>  Hi, I am new user of the expat library. My application requires different 
> code to be run on different xml tags when they are found and on the fly. I 
> have learned expat is event >driven, but only one function is calledback 
> on every tag found (endElement). My question is, can expat callback 
> different functions based on tag found, meaning a unique >callback for 
> every tag. Is that possible?
>  Please help me out
>
>You can do something like that:
>In the unic element_end callback, you multiplex your different callbacks 
>based on the tag.
>
> {
> if (strcmp(strElement,"TAG1")==0)
>  {
>  // call your callback for TAG1 here
>  return;
>  }
>
> if (strcmp(strElement,"TAG2")==0)
>  {
>  // call your callback for TAG2 here
>  return;
>  }
>
>}

>Regis St-Gelais
>www.laubrass.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.