import java.io.ioexception;
import javax.xml.parsers.documentbuilder;
import javax.xml.parsers.documentbuilderfactory;
import javax.xml.parsers.parserconfigurationexception;
import org.w3c.dom.document;
import org.w3c.dom.node;
import org.w3c.dom.nodelist;
import org.xml.sax.errorhandler;
import org.xml.sax.inputsource;
import org.xml.sax.saxexception;
import org.xml.sax.saxparseexception;
public class domdump {
static public void main(string[] arg) {
string filename = null;
boolean validate = false;
if (arg.length == 1) {
filename = arg[0];
} else if (arg.length == 2) {
if (!arg[0].equals("-v"))
usage();
validate = true;
filename = arg[1];
} else {
usage();
}
documentbuilderfactory dbf = documentbuilderfactory.newinstance();
dbf.setvalidating(validate);
dbf.setnamespaceaware(true);
dbf.setignoringelementcontentwhitespace(true);
// parse the input to produce a parse tree with its root
// in the form of a document object
document doc = null;
try {
documentbuilder builder = dbf.newdocumentbuilder();
builder.seterrorhandler(new myerrorhandler());
inputsource is = new inputsource(filename);
doc = builder.parse(is);
} catch (saxexception e) {
system.exit(1);
} catch (parserconfigurationexception e) {
system.err.println(e);
system.exit(1);
} catch (ioexception e) {
system.err.println(e);
system.exit(1);
}
// use a treedumper to list the tree
treedumper td = new treedumper();
td.dump(doc);
}
private static void usage() {
system.err.println("usage: domcheck [-v] <filename>");
system.exit(1);
}
}
class treedumper {
public void dump(document doc) {
dumploop((node)doc,"");
}
private void dumploop(node node,string indent) {
switch(node.getnodetype()) {
case node.cdata_section_node:
system.out.println(indent + "cdata_section_node");
break;
case node.comment_node:
system.out.println(indent + "comment_node");
break;
case node.document_fragment_node:
system.out.println(indent + "document_fragment_node");
break; case node.document_node:
system.out.println(indent + "document_node");
break;
case node.document_type_node:
system.out.println(indent + "document_type_node");
break;
case node.element_node:
system.out.println(indent + "element_node");
break;
case node.entity_node:
system.out.println(indent + "entity_node");
break;
case node.entity_reference_node:
system.out.println(indent + "entity_reference_node");
break;
case node.notation_node:
system.out.println(indent + "notation_node");
break;
case node.processing_instruction_node:
system.out.println(indent + "processing_instruction_node");
break;
case node.text_node:
system.out.println(indent + "text_node");
break;
default:
system.out.println(indent + "unknown node");
break;
}
nodelist list = node.getchildnodes();
for(int i=0; i<list.getlength(); i++)
dumploop(list.item(i),indent + " ");
}
}
class myerrorhandler implements errorhandler {
public void warning(saxparseexception e) throws saxexception {
show("warning", e);
throw (e);
}
public void error(saxparseexception e) throws saxexception {
show("error", e);
throw (e);
}
public void fatalerror(saxparseexception e) throws saxexception {
show("fatal error", e);
throw (e);
}
private void show(string type, saxparseexception e) {
system.out.println(type + ": " + e.getmessage());
system.out.println("line " + e.getlinenumber() + " column "
+ e.getcolumnnumber());
system.out.println("system id: " + e.getsystemid());
}
}
import javax.xml.parsers.documentbuilder;
import javax.xml.parsers.documentbuilderfactory;
import javax.xml.parsers.parserconfigurationexception;
import org.w3c.dom.document;
import org.w3c.dom.node;
import org.w3c.dom.nodelist;
import org.xml.sax.errorhandler;
import org.xml.sax.inputsource;
import org.xml.sax.saxexception;
import org.xml.sax.saxparseexception;
public class domdump {
static public void main(string[] arg) {
string filename = null;
boolean validate = false;
if (arg.length == 1) {
filename = arg[0];
} else if (arg.length == 2) {
if (!arg[0].equals("-v"))
usage();
validate = true;
filename = arg[1];
} else {
usage();
}
documentbuilderfactory dbf = documentbuilderfactory.newinstance();
dbf.setvalidating(validate);
dbf.setnamespaceaware(true);
dbf.setignoringelementcontentwhitespace(true);
// parse the input to produce a parse tree with its root
// in the form of a document object
document doc = null;
try {
documentbuilder builder = dbf.newdocumentbuilder();
builder.seterrorhandler(new myerrorhandler());
inputsource is = new inputsource(filename);
doc = builder.parse(is);
} catch (saxexception e) {
system.exit(1);
} catch (parserconfigurationexception e) {
system.err.println(e);
system.exit(1);
} catch (ioexception e) {
system.err.println(e);
system.exit(1);
}
// use a treedumper to list the tree
treedumper td = new treedumper();
td.dump(doc);
}
private static void usage() {
system.err.println("usage: domcheck [-v] <filename>");
system.exit(1);
}
}
class treedumper {
public void dump(document doc) {
dumploop((node)doc,"");
}
private void dumploop(node node,string indent) {
switch(node.getnodetype()) {
case node.cdata_section_node:
system.out.println(indent + "cdata_section_node");
break;
case node.comment_node:
system.out.println(indent + "comment_node");
break;
case node.document_fragment_node:
system.out.println(indent + "document_fragment_node");
break; case node.document_node:
system.out.println(indent + "document_node");
break;
case node.document_type_node:
system.out.println(indent + "document_type_node");
break;
case node.element_node:
system.out.println(indent + "element_node");
break;
case node.entity_node:
system.out.println(indent + "entity_node");
break;
case node.entity_reference_node:
system.out.println(indent + "entity_reference_node");
break;
case node.notation_node:
system.out.println(indent + "notation_node");
break;
case node.processing_instruction_node:
system.out.println(indent + "processing_instruction_node");
break;
case node.text_node:
system.out.println(indent + "text_node");
break;
default:
system.out.println(indent + "unknown node");
break;
}
nodelist list = node.getchildnodes();
for(int i=0; i<list.getlength(); i++)
dumploop(list.item(i),indent + " ");
}
}
class myerrorhandler implements errorhandler {
public void warning(saxparseexception e) throws saxexception {
show("warning", e);
throw (e);
}
public void error(saxparseexception e) throws saxexception {
show("error", e);
throw (e);
}
public void fatalerror(saxparseexception e) throws saxexception {
show("fatal error", e);
throw (e);
}
private void show(string type, saxparseexception e) {
system.out.println(type + ": " + e.getmessage());
system.out.println("line " + e.getlinenumber() + " column "
+ e.getcolumnnumber());
system.out.println("system id: " + e.getsystemid());
}
}
闽公网安备 35060202000074号