You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB
Java

Simple content filters
package com.ack.xml.jdom;
import java.util.Iterator;
import java.util.List;
import org.jdom.Comment;
import org.jdom.Element;
import org.jdom.Text;
import org.jdom.filter.ContentFilter;
import org.jdom.filter.Filter;
import org.jdom.input.SAXBuilder;
public class SimpleContentFilters {
public static void main( String[] args ) throws Exception {
// load in xml file and get a handle on the root element
SAXBuilder builder = new SAXBuilder();
org.jdom.Document doc = builder.build( "drainpipe.xml" );
Element rootElement = doc.getRootElement();
Filter filter =
new ContentFilter( ContentFilter.TEXT | ContentFilter.COMMENT );
// list all immediate nodes that are either comments or text
List contents = rootElement.getContent( filter );
// cycle through chosen content items under the rootElement
for( Iterator it = contents.iterator(); it.hasNext(); ) {
Object obj = it.next();
if( obj instanceof Comment ) {
System.out.println( "Comment: " + ( (Comment) obj ).getText() );
}
else if( obj instanceof Text ) {
System.out.println( "Text: " + ( (Text) obj ).getTextTrim() );
}
}
}
}