A bug in the current version of JDOM prevents this from working.
import org.jdom.*; import org.jdom.output.XMLOutputter; import org.jdom.input.SAXBuilder; import java.io.*; import java.util.*; public class TagStripper extends XMLOutputter { public TagStripper() { super(); } // Things we won't print at all protected void printDeclaration(Document doc, Writer out, String encoding) {} protected void printComment(Comment comment, Writer out, int indentLevel) {} protected void printDocType(DocType docType, Writer out) {} protected void printProcessingInstruction(ProcessingInstruction pi, Writer out, int indentLevel) {} protected void printNamespace(Namespace ns, Writer out) {} protected void printAttributes(List attributes, Writer out) {} protected void printElement(Element element, Writer out, int indentLevel, NamespaceStack namespaces) throws IOException { List content = element.getMixedContent(); Iterator iterator = content.iterator(); while (iterator.hasNext()) { Object o = iterator.next(); if (o instanceof String) { out.write((String) o); this.maybePrintln(out); } else if (o instanceof Element) { printElement((Element) o, out, indentLevel, namespaces); } } } // Could easily have put main() method in a separate class public static void main(String[] args) { if (args.length == 0) { System.out.println( "Usage: java TagStripper URL1 URL2..."); } TagStripper stripper = new TagStripper(); SAXBuilder builder = new SAXBuilder(); // start parsing... for (int i = 0; i < args.length; i++) { // command line should offer URIs or file names try { Document doc = builder.build(args[i]); stripper.output(doc, System.out); } catch (JDOMException e) { // a well-formedness error System.out.println(args[i] + " is not well formed."); System.out.println(e.getMessage()); } catch (IOException e) { // a well-formedness error System.out.println(e.getMessage()); } } } }