⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domtree.06

📁 java操作xml文件的各种代码
💻 06
字号:
import java.awt.*;import javax.swing.*;import javax.swing.tree.TreePath;import javax.swing.event.TreeModelListener;import javax.swing.tree.TreeModel;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;//载入xerces的DOM分析器import org.apache.xerces.parsers.DOMParser;/** * <CODE>DOMTreeView</CODE>会读入一个XML文件, * 使用DOM分析器分析后,将它显示到一个Java的JTree里。 * * @author <a href="mailto:james@eknow.com.tw">王景浩</a> * @version 0.5 */public class DOMTreeView extends JFrame{  public JTree tree;  /**   * 设置窗口的初始值   */  public void display(){    try {      //将tree加到窗口里,同时设置在窗口的中间。      this.getContentPane().add(tree, BorderLayout.CENTER);      //设置窗口大小      this.setSize(new Dimension(400, 300));      //显示窗口      this.show();    }    catch(Exception e) {      e.printStackTrace();    }  }  /**   *   设置窗口关闭的事件   */  protected void processWindowEvent(java.awt.event.WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == java.awt.event.WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  public void parse(String uri){    //建立一个 DOM 分析器    DOMParser parser = new DOMParser();    try{      //显示标题      this.setTitle("目前文件: " + uri);      parser.parse(uri);      Document doc = parser.getDocument();      tree = new JTree(new MyTreeModel(doc));    } catch (Exception e){      System.err.println("分析错误: " + e.getMessage());    }  }  public static void main(String[] args) {    if( args.length != 1) {      System.out.println("使用方法: java DOMTreeView [XML文件名称]");      return;    }    String uri = args[0];    DOMTreeView dtv = new DOMTreeView();    dtv.parse(uri);    dtv.display();  }}class MyTreeModel implements TreeModel {  private Document root;  public MyTreeModel(Document doc){    root = doc;  }  public Object getRoot() {    return root;  }  public Object getChild(Object parent, int index) {    return ((Node)parent).getChildNodes().item(index);  }  public int getChildCount(Object parent) {    return ((Node)parent).getChildNodes().getLength();  }  public boolean isLeaf(Object node) {    return ((Node)node).getChildNodes().getLength() == 0;  }  public void valueForPathChanged(TreePath path, Object newValue) {  }  public int getIndexOfChild(Object parent, Object child) {    NodeList nl = ((Node)parent).getChildNodes();    for(int i=0; i< nl.getLength(); i++)      if( ((Node)child).equals(nl.item(i)) )        return i;    return -1;  }  public void addTreeModelListener(TreeModelListener l) {  }  public void removeTreeModelListener(TreeModelListener l) {  }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -