[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] Serialization with SAX
- From: Johannes Lichtenberger <Johannes.Lichtenberger@uni-konstanz.de>
- To: Michael Kay <mike@saxonica.com>
- Date: Fri, 16 Jan 2009 00:41:40 +0100
Am Donnerstag, den 15.01.2009, 22:03 +0000 schrieb Michael Kay:
> You don't want to get the source of a serializer and modify it. You want to
> add a SAX filter into a pipeline. Your filter should simply call the next
> stage in the pipeline (that is, the serializer) for every event until the
> threshold is reached, and do nothing for events after that threshold (except
> of course for closing the outermost element and the document tidily).
>
> You can write a SAX filter by subclassing XMLFilterImpl, and you can see how
> to use it from a tutorial at
> http://www.cafeconleche.org/slides/sd2000east/sax/74.html
So I'm not really sure how to use it, something like:
public ExtractArticles(XMLReader parent) {
super(parent);
}
public void parse(InputSource input) throws IOException, SAXException
{
super.parse(input);
}
public void parse(String systemId) throws IOException, SAXException {
parse(new InputSource(systemId));
}
/**
* {@inheritDoc}
*/
public void startElement(String namespaceURI, String localName, String
qName,
Attributes atts) throws SAXException {
if (localName.equalsIgnoreCase("page")) {
counter++;
}
if (counter < ARTICLES) {
super.startElement(namespaceURI, localName, qName, atts);
}
}
...
public final static void main(final String args[]) {
try {
XMLReader r = XMLReaderFactory.createXMLReader();
new ExtractArticles(r).parse(new InputSource(new
FileInputStream(args[0])));
} catch (IOException e) {
System.err.println("I/O exception reading XML document");
} catch (SAXException e) {
System.err.println("XML exception reading document.");
}
}
But how do I specify the output document?
greetings,
Johannes
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]