1 2 3 4 5 6 7 | public void characters( char[] cbuf, int start, int len ) throws SAXException //------------------------------------------------------- { String str = new String( cbuf, start, len ).replace( '\\n', '#' ); System.out.println ( "characters() [" + "len=" + len + "]: \\"" + str + "\\"" ); // etc ... } |
1 2 3 | <para> This is a <ital>very</ital> little bit of XML. </para> |
1 2 3 4 | characters() [len=11]: "#This is a " characters() [len=4]: "very" characters() [len=19]: " little bit of XML." characters() [len=1]: "#" |
1 2 3 4 5 6 | characters() [len=0]: "" characters() [len=1]: "#" characters() [len=10]: "This is a" characters() [len=4]: "very" characters() [len=19]: " little bit of XML." characters() [len=1]: "#" |
1 | StringBuffer m_sb = new StringBuffer(); |
1 2 3 4 5 6 7 8 | public void characters( char[] cbuf, int start, int len ) throws SAXException //------------------------------------------------------- { if ( len > 0 ) { m_sb.append( cbuf, start, len ); } } |
1 2 3 4 5 6 7 8 9 | public void startElement( ... ) //---------------------- { if ( m_sb.length() > 0 ) { newTextNode(); } // etc ... } |
1 2 3 4 5 6 7 8 9 | public void endElement( ... ) //-------------------- { if ( m_sb.length() > 0 ) { newTextNode(); } // etc ... } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | void newTextNode( ) //----------------- { ++ m_currNode; // this assumes you're treating text // nodes as first-class node citizens // the element that owns us int parent = ( (Integer)m_parentStack.peek() ).intValue(); // and if you're tracking siblings ... int priorSib = ( (Integer)m_siblingStack.pop() ).intValue(); m_siblingStack.push( new Integer( m_currNode )); // finally, the point of the exercise - delivering the text // and node-relationship information on to the client m_indexer.newTextNode( m_currNode, parent, priorSib, m_sb.toString() ); // lastly don't forget to reset the buffer to zero // to start accumulating afresh m_sb.setLength( 0 ); } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |