📄 treeviewer.java
字号:
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.swing.*;
import javax.swing.tree.*;
import java.util.*;
public class TreeViewer extends DefaultHandler
{
private Stack nodes;
public void startDocument() throws SAXException
{
nodes=new Stack();
}
private TreeNode root;
public void startElement(String namespaceURI, String localName,
String qualifiedName, Attributes atts)
{
String data;
if(namespaceURI.equals("")) data=localName;
else
{
data='{'+namespaceURI+"} "+qualifiedName;
}
MutableTreeNode node=new DefaultMutableTreeNode(data);
try{
MutableTreeNode parent=(MutableTreeNode)nodes.peek();
parent.insert(node,parent.getChildCount());
}
catch(EmptyStackException e){
root=node;
}
nodes.push(node);
}
public void endElement(String namespaceURI, String localName,
String qualifiedName) {
nodes.pop();
}
public void endDocument()
{
JTree tree = new JTree(root);
JScrollPane treeView = new JScrollPane(tree);
JFrame f = new JFrame("XML Tree");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(treeView);
f.pack();
f.show();
}
public static void main(String[] args)
{
try{
XMLReader parser=XMLReaderFactory.createXMLReader(
"org.apache.xerces.parsers.SAXParser"
);
ContentHandler handler= new TreeViewer();
parser.setContentHandler(handler);
for(int i=0;i<args.length;i++){
parser.parse(args[i]);
}
}
catch(Exception e){
System.err.println(e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -