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

📄 xmlan.java

📁 xml分析器,没使用dom,只用简单的java2类库
💻 JAVA
字号:
package untitled1;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import java.io.*;import java.util.*;class XMLAn extends JFrame{        JButton btn=new JButton("提取数据");        JTextField DBText=new JTextField(10);        JTextField tableText=new JTextField(10);        DefaultTableModel dtm=new DefaultTableModel();        JTable ta=new JTable();        JPanel CenterP;        String DB,tableName;        Vector col=new Vector();        //Vector row=new Vector();        Vector body=new Vector();        public XMLAn()        {                init();                btn.addActionListener(new Act());                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                this.setSize(450,400);                this.setVisible(true);        }        void init()        {                Container c=this.getContentPane();                CenterP=new JPanel();                JPanel p=new JPanel();                p.add(DBText);                p.add(tableText);                CenterP.setLayout(new BorderLayout());                CenterP.add(p,"North");                CenterP.add(new JScrollPane(ta));                c.add(btn,"North");                c.add(CenterP,"Center");        }        class Act implements ActionListener        {                public void actionPerformed(ActionEvent e)                {                        dtm.addColumn("tile");                        dtm.addColumn("art");                        dtm.addColumn("price");                        dtm.addColumn("year");                        dtm.addColumn("month");                        //渡出文件                        String str=readFile("cd.xml");                        //System.out.println (str);                        String s=setDB(str);                        //System.out.println (DB);                        //System.out.println (s);                        setTable(s);                        DBText.setText(DB);                        tableText.setText(tableName);                        for(int i=0;i<col.size();i++)                        {                                System.out.println (col.get(i));                        }                        for(int i=0;i<body.size();i++)                        {                                Vector r=(Vector)body.get(i);                                for(int j=0;j<r.size();j++)                                {                                        System.out.print (r.get(j)+"\t");                                }                                System.out.println ();                        }                        dtm.setDataVector(body,col);                        ta.setModel(dtm);                }        }        String  readFile(String fileName)        {                String result="";                try                {                        BufferedReader br=new BufferedReader(new FileReader(fileName));                        String str=null;                        while((str=br.readLine())!=null)                                result+=str;                        br.close();                }catch(Exception ex)                {                        ex.printStackTrace();                }                return result;        }        String setDB(String str)        {                int n=0;//查找的起始位置                int n1=0;                int n2=0;                String s="";                while(true)                {                        n1=str.indexOf("<",n);                        n2=str.indexOf(">",n);                        s=str.substring(n1+1,n2);                        if(str.indexOf("/"+s,n2+1)!=-1)                        {                                DB=s;                                break;                        }                        n=n2+1;                }                int m=str.lastIndexOf("</");                return str.substring(n2+1,m);        }        void setTable(String s)        {                /*********取表名*************/                int n1=s.indexOf("<");                int n2=s.indexOf(">");                String table=s.substring(n1+1,n2);                if(s.indexOf("/"+table,n2+1)==-1)                {                        JOptionPane.showMessageDialog(this,"格式错误");                        return;                }                else                        tableName=table;                /*****循环处理各行*******/                int m=0;                int m1=0;                int m2=0;                while(true)                {                        m1=s.indexOf("<"+tableName,m);                        if(m1==-1)                        {                                break;                        }                        m2=s.indexOf("</"+tableName,m1+1);                        String sData=s.substring(m1+2+tableName.length(),m2);                        //row.clear();                        Vector row=new Vector();                        col.clear();                        rowDeal(sData,row);//调用行处理                        /*for(int i=0;i<row.size();i++)                        {                                System.out.println (row.get(i));                        }          */                      body.addElement(row);                        //dtm.addRow(row);                        m=m2+3+tableName.length();                }        }        void rowDeal(String sData,Vector row)        {                int m=0;                int m1=0;                int m2=0;                int m3=0;                String colName,colValue;                while(true)                {                        m1=sData.indexOf("<",m);                        if(m1==-1)                        {                                break;                        }                        m2=sData.indexOf(">",m1+1);                        colName=sData.substring(m1+1,m2);                        m3=sData.indexOf("</"+colName,m2+1);                        if(m3==-1)                        {                                JOptionPane.showMessageDialog(this,"格式错误");                                return;                        }                        col.addElement(colName);                        colValue=sData.substring(m2+1,m3);                        row.addElement(colValue);                        m=m3+3+colName.length();                }                //dtm.setDataVector(body,col);                //ta.setModel(dtm);        }        public static void main(String[] args)        {                new XMLAn();        }}

⌨️ 快捷键说明

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