java读写xml

 

这里总结一下XML文件的读写过程,先说一下写的过程,这里我用的是XmlDocument的write方法实现的,写的过程是比较简单的,只需要定义自己想要的元素变量,

    Element user=null;
    Element username=null,password=null;

然后

//    定义工厂,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。
     DocumentBuilderFactory dbf=null;
     //定义 API, 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document
     DocumentBuilder db=null;
     //实例工厂
     dbf = DocumentBuilderFactory.newInstance();
     //实例documentBuilder对象
     db = dbf.newDocumentBuilder();
     //实例XmlDocument变量
     doc = new XmlDocument();

手动或从数据库里查数据为其赋值,

    username="helloxml";

    password="pass";

实例元素变量

user = doc.createElement("UserInfomation");

//实例element变量
      username = doc.createElement("UserName");
      username.appendChild(doc.createTextNode(username1));
      user.appendChild(username);

      。。。。。

//再用XmlDocument对象doc将根元素到xml文档

 doc.appendChild(user);

最后通过write方法将其写到指定的文件中

if (path == null || path.equals("")) {
   path = "E:/user.xml";
  }
    try
    {
   //将输出路径通过OutputStreamWriter
      OutputStreamWriter  out = new OutputStreamWriter(
      new BufferedOutputStream(new FileOutputStream(path)), "UTF-8");
      //利用XmlDocument的write方法写出xml文件
      doc.write(out, "UTF-8");
      out.close();
   
    }catch(Exception e)
    {
     e.printStackTrace();
    }

就完成了。 这里用到的XmlDocument类需要crimson.jar这个包 下载加入项目的lib中去。

 

接下说一下解析xml,这里我觉得他比较烦人,深度不同,获取的层次就不同,还要考虑到获取的效率,这里我就用最常用的了

我用的dom4j来解析的。

首先下载dom4j.jar包放入项目的lib中,

//定义SAXReader对象 reader
   SAXReader reader = new SAXReader();
   //通过reader来解析指定路径下的xml文件
   Document doc = reader.read(new File(fileName));
   //通过doc获取xml文件中的元素赋值Element对象
   Element rootElement = doc.getRootElement();

   for (Iterator i = rootElement.elementIterator(); i.hasNext();)
   {
    Element element = (Element) i.next();
    System.out.println(element.getText());//显示首级信息
    System.out.println(element.getName());//显示首级元素名称

    if(element.getName().equals("UserName"))
    {
     UserName=element.getText();
    }//end block if
    if(element.getName().equals("PassWord"))
    {
     PassWord=element.getText();
    }

   如果深度多1那么就只好在嵌套一个for循环

   
    }

这样就完成了xml解析

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值