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

📄 xml2db.java

📁 用来为垂直搜索引擎抓取数据的采集系统
💻 JAVA
字号:
/*
 * *****************************************************
 * Copyright (c) 2005 IIM Lab. All  Rights Reserved.
 * Created by xuehao at 2005-10-12
 * Contact: zxuehao@mail.ustc.edu.cn
 * *****************************************************
 */

package org.indigo.db;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;

import javax.swing.*;
/**
 * 采集的辅助工具。
 * 把xml文件中的数据导入到数据库中。
 * @author wbz
 *
 */
public class Xml2DB
{
    private JFrame itsFrame=null;
    private JFileChooser itsChooser=null;
    private JCheckBox itsNestCheck=null;
    private JTextField itsDirPath=null;

    private Vector itsFiles=null;
    private JTextField itsKeyField=null;
    private JTextField itsValField=null;
    private JTextArea itsArea=null;
    
    public Xml2DB()
    {
        itsChooser = new JFileChooser();
        itsChooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
        
        JFrame frame = new JFrame( "Import xml to db" );
        itsFrame = frame;
        JPanel panel = new JPanel();
        panel.setLayout( new BorderLayout() );
        
        JPanel centerPanel = new JPanel( );
        centerPanel.setLayout( new BorderLayout() );
        JPanel p1 = new JPanel();
        JPanel p2 = new JPanel();


        centerPanel.add( p1, BorderLayout.NORTH );
        centerPanel.add( p2, BorderLayout.CENTER );
        
        JPanel southPanel = new JPanel();
        southPanel.setLayout( new BorderLayout() );
        JPanel ps1 = new JPanel();
        JPanel ps2 = new JPanel();
        JPanel ps21 = new JPanel();
        JPanel ps22 = new JPanel();
        ps2.setLayout( new BorderLayout() );
        
        itsDirPath = new JTextField( "", 40 );
        JButton dirBtn = new JButton( "open..." );
        dirBtn.addActionListener( new ActionListener()
                {
	            public void actionPerformed(ActionEvent ae)
	            {
	                int ret = itsChooser.showOpenDialog( itsFrame );
	                if( ret==JFileChooser.APPROVE_OPTION )
	                {
	                    String str = itsChooser.getSelectedFile().toString();
	                    itsDirPath.setText( str );
//	                    System.out.println( itsChooser.getSelectedFile() );
	                }
	            }
                });
        
        ps1.add( new JLabel("Directory:") );
        ps1.add( itsDirPath );
        ps1.add( dirBtn );
        
        JButton actBtn = new JButton( "Start" );
        JButton extBtn = new JButton( "Exit" );
        itsArea = new JTextArea( "", 20, 20 );
        actBtn.addActionListener( new ActionListener()
                {
            	public void actionPerformed( ActionEvent e )
            	{

//            	    System.out.println( itsDirPath.getText() );
            	    operateDir( itsDirPath.getText() );
//            	    System.out.println( "ok" );
            	}
                });
        extBtn.addActionListener( new ActionListener()
                {
            	public void actionPerformed( ActionEvent e )
            	{
            	    System.exit( 0 );
            	}
                });
        ps21.add( actBtn );
        ps21.add( extBtn );
        ps2.add( ps21, BorderLayout.NORTH );
        ps2.add( new JScrollPane(itsArea), BorderLayout.CENTER );
        
        southPanel.add( ps1, BorderLayout.NORTH );
        southPanel.add( ps2, BorderLayout.CENTER );
        
        panel.add( centerPanel, BorderLayout.CENTER );
        panel.add( southPanel, BorderLayout.SOUTH );
        
        frame.getContentPane().add( panel );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        
        frame.pack();
        frame.show();
        
    }
    private void getFiles( String fileName )
    {
        File source = new File( fileName );
        String []files = source.list();
        for( int i=0; i<files.length; i++ )
        {
            File file = new File( source.getPath(), files[i] );
            if( file.isDirectory() )
            {
                getFiles( file.toString() );
            }else
            {
                String str = file.getAbsolutePath();
                if( itsFiles==null )
                {
                    itsFiles = new Vector();
                }
                if( str.endsWith(".xml") )
                    itsFiles.add( str );
//                System.out.println( str );
            }
        }
    }
    private void operateDir(String path )
    {
        if( path==null || path.equals("") )
            return;
        getFiles( path );
        
        if( itsFiles==null )
        {
            System.out.println( "No xml file in the directory, please try another directory." );
        }else
        {
            iFileCount = 0;
            itsArea.setText( "" );
            for( int i=0; i<itsFiles.size(); i++ )
            {
                String str = itsFiles.get( i ).toString();
//                System.out.println( str );
                doOperate( str );
            }
        }
        
    }
    private static int iFileCount=0;
    private void doOperate( String file )
    {
        Drop2DBGate dropGate = DBManager.getInstance().getImpl();
    	dropGate.drop2DB( file );
      
       itsArea.append( ++iFileCount + ") " +file+"\n" );
    }
    public static void main(String[] args)
    {
        new Xml2DB();
    }
  
}

⌨️ 快捷键说明

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