protected void doSAX (Node node)
throws
ParserException,
SAXException
{
Tag tag;
Tag end;
if (node instanceof Remark)
{
String text = mParser.getLexer ().getPage ().getText (node.getStartPosition (), node.getEndPosition ());
mContentHandler.ignorableWhitespace (text.toCharArray (), 0, text.length ());
}
else if (node instanceof Text)
{
String text = mParser.getLexer ().getPage ().getText (node.getStartPosition (), node.getEndPosition ());
mContentHandler.characters (text.toCharArray (), 0, text.length ());
}
else if (node instanceof Tag)
{
tag = (Tag)node;
if (mNameSpaces)
mSupport.processName (tag.getTagName (), mParts, false);
else
{
mParts[0] = "";
mParts[1] = "";
}
if (mNameSpacePrefixes)
mParts[2] = tag.getTagName ();
else if (mNameSpaces)
mParts[2] = "";
else
mParts[2] = tag.getTagName ();
mContentHandler.startElement (
mParts[0], // uri
mParts[1], // local
mParts[2], // raw
new Attributes (tag, mSupport, mParts));
NodeList children = tag.getChildren ();
if (null != children)
for (int i = 0; i < children.size (); i++)
doSAX (children.elementAt (i));
end = tag.getEndTag ();
if (null != end)
{
if (mNameSpaces)
mSupport.processName (end.getTagName (), mParts, false);
else
{
mParts[0] = "";
mParts[1] = "";
}
if (mNameSpacePrefixes)
mParts[2] = end.getTagName ();
else if (mNameSpaces)
mParts[2] = "";
else
mParts[2] = end.getTagName ();
mContentHandler.endElement (
mParts[0], // uri
mParts[1], // local
mParts[2]); // raw
}