[
Lists Home |
Date Index |
Thread Index
]
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
|