[Home] [By Thread] [By Date] [Recent Entries]



All examples available on XML filters show how to convert
<foo>foo</foo> to <bar>foo</bar>.
What they do is, in startElement(name, ...), check
if name is foo and call handler's startElement with name
as bar.

I am looking for a way to convert
<foo>foo</foo> to
<foo><bar>foo</bar></foo>

ie., insert XML elements.
The problem is with generating sax events:
Am I supposed to do
  if name is foo
   then
     startElement foo
     startElement bar
   end-if
and similarly for endElement.

I  can do this provided the xml I providing as replacement
is known in advance, i can generate sax events at design
time. What if I dont know that xml. For example,
   startElement(name, ...)
   {
     if (name is foo) 
     then
           Element e = transform(foo)
           // Now how do I generate
           // eventsnt 'e'
           // note that it is more than
           // one level deep.
   }

In other words, is there a way to push new xml fragment
back into the input source so that the parser continues
reading it as if it were originally available in that
xml source. I am looking for a parser-independant soln.

thanks!
--st

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member