📄 xmlan.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 + -