几天来,终于学了点东西,学着写个JDOM操作XML

    这一阵,不知道怎么搞的,我的电脑总是不知不觉的中病毒,并且中的病毒都是相当的难以清除,在最后没得办法的情况下,就只有最后一招:重装系统。公司购买的瑞星杀毒软件,简直是一点用都没有,一连中了三次,连续重装了三次系统,居然瑞星连一次都没有报,简直不知道瑞星当时是在做什么,还是服务器版的。还当不了免费的360SAFE,这个软件,我觉得真的很好,又是免费,又能够处理好多杀毒软件都不能够处理的事情,所以现在电脑上可以是不装杀毒软件,但是不能够没有这个软件。
    每次中毒后,要查一查,这肯定是必然的,但是,我发现,每次我去排查的时间,远远大于重装系统所用的时候,并且还不一定搞的好,杀毒软件也没有用,所以现在我一中,就重装,这样就能够用新系统,呵呵。现在的网络病毒真是太多了,一不小心就中招了,病毒更新的速度远大于了杀毒软件的更新速度。
    现在装好了,终于可以做正事了,还是好好的学我的JAVA吧。
    示例如下,简单的很,如果你是新手,看看也无妨,我也是很少用,贴在这里,以后有用的再过来取:
import java.io.FileInputStream;
import java.io.FileOutputStream;

import java.util.List;

import org.jdom.xpath.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.*;

/**
 * 使用JDOM操作XML文件示例
 * 步骤:
 * 1、去www.jdom.org下载jdom 1.0,也只有这个版本,因为作为觉得简单的才是最好的,除非XML更改才会对程序更行更改
 * 2、准备XML文件,将放在指定的目录下:
 * <?xml version="1.0" encoding="UTF-8" ?>
    <student>
    <user>
        <id>1</id>
        <name>test_boy</name>
        <age>23</age>
        <sex>boy</sex>
    </user>
    <user>
        <id>2</id>
        <name>test_girl</name>
        <age>20</age>
        <sex>girl</sex>
    </user>
    </student>
 × 3、将代码放进去,直接运行并查看结果,就OK了
 */
public class JDomTest
{
  String xmlPath = "e://Mickey//test.xml";//原文件,必须存在
  String xmlPath_out = "e://Mickey//test1.xml";//目标文件,可不存在
  //建立SAXBuilder对象
  SAXBuilder builder = new SAXBuilder();
  //建立文档对象,也就是XML文件对象
  Document document;
  public JDomTest()
  {
    try
    {
      //用XMLBuilder对象建立即build一个文件输入流,成为该文档对象
      document = builder.build(new FileInputStream(xmlPath));
    }
    catch (Exception e)
    {
      e.printStackTrace();
      return;
    }
  }
  public void delByID(String id)
  {
  
  }
  public static void main(String[] args)
  {  
    JDomTest jDomTest=new JDomTest();  
    //获得文档的根元素,这里就是获得"student"
    Element root = jDomTest.document.getRootElement();
    System.out.println("root element is:" + root);
    XPath xPath;
    //取得根原下面所有字根,将放于List集合中
    try
    {   
      //List l=XPath.selectNodes(root,"");
      //System.out.println("查找结果:"+l.size());
      //用这个XPath的时候,还不知道还要把JDom/lib下面全部的类导入
      //还编辑了不少时间,这是JDom和其它的jar文件不一样的地方
      XPath servletPath = XPath.newInstance("/student/user/id[text()='1']");//查找id=1的是不是存在
      List l = servletPath.selectNodes(jDomTest.document);
      System.out.println("查找结果:"+l.size());
      for(int i=0;i<l.size();i++)
      {
        Element e=(Element)l.get(i);
        String id=e.getText();      
        System.out.println("id:"+id);
      }
    }
    catch (JDOMException e)
    {
      e.printStackTrace();
    }
    List list = root.getChildren();
    for (int i = 0; i < list.size(); i++)
    {
      System.out.println("XXX");
      StringBuffer buf = new StringBuffer();
      //取得当前第i个元素,这里指的“二级根”
      Element e = (Element) list.get(i);
   
      Attribute attribute=new Attribute("Ok","yes");
      e.setAttribute(attribute);
      //取得对应的“二级根”面的对应的元素名
      Element e_id = e.getChild("id");
      //取得对应的值
      String id = e_id.getText();
      Element e_name = e.getChild("name");
      String name = e_name.getText();
      Element e_age = e.getChild("age");
      String age = e_age.getText();
      Element e_sex = e.getChild("sex");
      String sex = e_sex.getText();
      //增加一个major项
      Element e_add=new Element("major");
      //赋值
      e_add.setText("Computer");
      //加到“二级根”下
      e.addContent(e_add);
    
      buf.append("id:" + id).append(" name:" + name).append(" age:" +
                                                            age).append(" sex:" +
                                                                        sex);
      System.out.println(buf);
      //这里删除一个Content后,此时将不再进行第二个循环,运行完该循环的最后一条语句直接通出
      root.removeContent(e);
      System.out.println("XXX");
    }
    //增加一个“二级根”,并赋值
    Element oneChild=new Element("user");
    //增加一个属性
    Attribute a=new Attribute("ComeFrom","BeiJing");
    oneChild.setAttribute(a);
    root.addContent(oneChild);
    Element e_id = new Element("id");
    e_id.setText("3");
    //取得对应的值
    Element e_name = new Element("name");
    e_name.setText("temp");
    Element e_age = new Element("age");
    e_age.setText("30");
    Element e_sex = new Element("sex");
    e_sex.setText("girl");
    oneChild.addContent(e_id);
    oneChild.addContent(e_name);
    oneChild.addContent(e_age);
    oneChild.addContent(e_sex);
  
    //输入出当前读入的XML文件到另一个文件中
    XMLOutputter out = new XMLOutputter();
    try
    {
      //建立文件输出流,将读入的文件,定到目标文件中去
      out.output(jDomTest.document, new FileOutputStream(jDomTest.xmlPath_out));
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    System.exit(0);
  }
}

你可能感兴趣的:(exception,xml,list,String,import,杀毒软件)