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

📄 configurexml.java

📁 完整的合同管理信息系统
💻 JAVA
字号:
package com.ICT.AFC.util;



import org.jdom.*;
import java.util.Vector;
import org.jdom.input.SAXBuilder;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
import org.jdom.output.XMLOutputter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.FileNotFoundException;




public class configureXML
{
    //需要解析的文件
    private static String file = "./configure.xml";
    static Vector contractSource = new Vector();
    static Vector department = new Vector();
    static Element root;
    static SAXBuilder builder;
    static Document doc;
    public static void main(String args[]) throws FileNotFoundException,
      IOException {
        initializeConfigureXml();
    }
    public static void initializeConfigureXml() throws FileNotFoundException,
  IOException
{
     builder = new SAXBuilder();
     //组装contractSource对象
     contractSource.insertElementAt("国家",0);
     contractSource.insertElementAt("部委",1);
     contractSource.insertElementAt("铁科院",2);
     contractSource.insertElementAt("电子所",3);
     contractSource.insertElementAt("横向",4);
     contractSource.insertElementAt("其他",5);

     //组装department对象
     department.insertElementAt("AFC事业部",0);
     department.insertElementAt("ASP事业部",1);
     department.insertElementAt("智能中心",2);
     department.insertElementAt("机电市场部",3);
     department.insertElementAt("信息化监理部",4);
     department.insertElementAt("研发部",5);
     department.insertElementAt("综合部",6);
     department.insertElementAt("财务部",7);
     department.insertElementAt("质管部",8);
     department.insertElementAt("人力资源部",9);
     department.insertElementAt("杂志社",10);
     department.insertElementAt("所领导",11);


     //传入参数生成configureXML配置文件
     writeConfigureXML(contractSource,department);

}

    //添加一个ContractSource
   public static void addContractSource(String str) throws FileNotFoundException, IOException
   {
        //声明一个builder对象
        builder = new SAXBuilder();
        //声明一个Document对象

        try
        {
           doc = builder.build(file);//解析file文件
        }
        catch(JDOMException e)
        {
            System.err.println(e.getMessage());
        }

        //获得root元素
        root = doc.getRootElement();

        //取得contractSource子节点
        Element contractSource = root.getChild("contractSource");
        //取得department子节点
        Element department = root.getChild("department");

        //获取一个contractSourceVector对象,并以Vector对象返回
        Vector contractSourceVector = getContractSource(contractSource,0);
        //获取一个departmentVector对象,并以Vector对象返回
        Vector departmentVector = getDepartment(department,0);


        //在已有的基础上索引值加1。
        int i = contractSourceVector.size();
        String contractStr = str;//contractSource属性值
        contractSourceVector.add(i,contractStr);//在vector对象中加入新的值
        writeConfigureXML(contractSourceVector,departmentVector);//输出修改后的ContractSourceXML文件
    }
    //删除一个ContractSource
    public static void delContractSource(String str) throws FileNotFoundException,
      IOException
   {
        //声明一个builder对象
        builder = new SAXBuilder();
        //声明一个Document对象

        try
        {
            doc = builder.build(file);//解析file文件
        }
        catch(JDOMException e)
        {
             System.err.println(e.getMessage());
        }
        //获得root元素
        root = doc.getRootElement();
        //取得contractSource子节点
        Element contractSource = root.getChild("contractSource");
        //取得department子节点
        Element department = root.getChild("department");

        //获取一个contractSourceVector对象,并以Vector对象返回
        Vector contractSourceVector = getContractSource(contractSource,0);
        //获取一个departmentVector对象,并以Vector对象返回
        Vector departmentVector = getDepartment(department,0);

        contractSourceVector.removeElement(str);
        writeConfigureXML(contractSourceVector,departmentVector);
    }
    //添加一个deparment
    public static void addDeparment(String str) throws FileNotFoundException, IOException
    {
        //声明一个builder对象
        builder = new SAXBuilder();
        //声明一个Document对象

       try
       {
           doc = builder.build(file);//解析file文件
       }
       catch(JDOMException e)
       {
             System.err.println(e.getMessage());
       }
       //获得root元素
       root = doc.getRootElement();
       //取得contractSource子节点
       Element contractSource = root.getChild("contractSource");
       //取得department子节点
       Element department = root.getChild("department");

       //获取一个contractSourceVector对象,并以Vector对象返回
       Vector contractSourceVector = getContractSource(contractSource,0);
       //获取一个departmentVector对象,并以Vector对象返回
       Vector departmentVector = getDepartment(department,0);

       //在已有的基础上索引值加1。
       int i = departmentVector.size();
       String departmentStr = str;//contractSource属性值
       departmentVector.add(i,departmentStr);//在vector对象中加入新的值
       writeConfigureXML(contractSourceVector,departmentVector);//输出修改后的ContractSourceXML文件
    }
   //删除一个Deparment
   public static void delDeparment(String str) throws FileNotFoundException,
   IOException
  {
     //声明一个builder对象
     builder = new SAXBuilder();
     //声明一个Document对象

     try
     {
         doc = builder.build(file);//解析file文件
     }
     catch(JDOMException e)
     {
          System.err.println(e.getMessage());
     }
     //获得root元素
     root = doc.getRootElement();
     //取得contractSource子节点
     Element contractSource = root.getChild("contractSource");
     //取得department子节点
     Element department = root.getChild("department");

     //获取一个contractSourceVector对象,并以Vector对象返回
     Vector contractSourceVector = getContractSource(contractSource,0);
     //获取一个departmentVector对象,并以Vector对象返回
     Vector departmentVector = getDepartment(department,0);

     departmentVector.removeElement(str);
     writeConfigureXML(contractSourceVector,departmentVector);
  }

    //生成ContractSourceXML文件
    public static void writeConfigureXML(Vector contractSource,Vector department) throws
      FileNotFoundException, IOException
  {
        //声明并生成一个root元素
        root = new Element("configure");
        root.addContent("\n");//生成一个换行符
        //生成contractSource子节点
        Element contract = new Element("contractSource");
        if(contractSource != null || contractSource.size()>0)
        {
          for (int i = 0; i < contractSource.size(); i++)
          {
               //生成一个contractSource元素,属性值index,text值
               Element param = new Element("param");
               param.setText(contractSource.elementAt(i).toString());
               param.addAttribute("index",String.valueOf(i));
               contract.addContent(param);
               contract.addContent("\n");
               //root.addContent("\n");
          }
        }
        root.addContent(contract);
        //生成department子节点
        Element depart = new Element("department");
        if(department != null || department.size()>0)
        {
          for (int i = 0; i < department.size(); i++)
          {
               //生成一个department元素,属性值index,text值
               Element param = new Element("param");
               param.setText(department.elementAt(i).toString());
               param.addAttribute("index",String.valueOf(i));
               depart.addContent(param);
               depart.addContent("\n");
               //root.addContent("\n");
          }
        }
        root.addContent(depart);
        //生成Docuemnt对象
        doc = new Document(root);

        //生成FileOutputStream对象,outWriter对象
        FileOutputStream outStream = new FileOutputStream(file);
        OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
        //生成XMLOutput对象
        XMLOutputter outputter = new XMLOutputter();

        try
        {
            outputter.setEncoding("gb2312");//设置输出XML文件的字符编码
            outputter.output(doc,outWriter);//输出文件
        }
        catch(IOException e)
        {
           System.err.println(e);
        }
        outWriter.close();//关闭outWriter
        outStream.close();//关闭outStream
    }
    //解析并获取ContractSource文件
    public static Vector getContractSource(Element current,int depth)
    {
        Vector contractSourceVector = new Vector();
        //获取current的子节点
        List children = current.getChildren();
        //遍历children子节点
        Iterator iterator = children.iterator();
        while(iterator.hasNext())
        {
            Element child = (Element) iterator.next();
            getContractSource(child,depth);

            //包装成Vector对象
            String contractSourceIndex = child.getAttributeValue("index");
            int i = Integer.parseInt(contractSourceIndex);
            String contractSource = child.getText();
            contractSourceVector.add(i,contractSource);
        }
        return contractSourceVector;
    }
    public static Vector getDepartment(Element current,int depth)
   {
       Vector departmentVector = new Vector();
       //获取current的子节点
       List children = current.getChildren();
      //遍历children子节点
      Iterator iterator = children.iterator();
      while(iterator.hasNext())
      {
          Element child = (Element) iterator.next();
          getContractSource(child,depth);

          //包装成Vector对象
          String contractSourceIndex = child.getAttributeValue("index");
          int i = Integer.parseInt(contractSourceIndex);
          String contractSource = child.getText();
          departmentVector.add(i,contractSource);
     }
      return departmentVector;
   }
}

⌨️ 快捷键说明

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