JDOM对xml的解析

1 篇文章 0 订阅
1 篇文章 0 订阅

sample.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<HD>
   <disk name="C">
      <capacity>8G</capacity>
      <directories>200</directories>
      <files>1580</files>
   </disk>
  
   <disk name="D">
      <capacity>100G</capacity>
      <directories>500</directories>
      <files>3000</files>
   </disk>

</HD>

解析类sample.java:

package jdom.sample;

import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class Sample {

 /**
  * @param args
  * @throws IOException
  * @throws JDOMException
  */
 public static void main(String[] args) throws Exception {
  SAXBuilder sb=new SAXBuilder();
  Document doc=sb.build("sample.xml");//构造文档对象
  Element root=doc.getRootElement();//获取根节点
  List list=root.getChildren();//取名字为disk的所有元素
  for(int i=0;i<list.size();i++){
   Element element=(Element) list.get(i);
   String name=element.getAttributeValue("name");
   String capacity=element.getChildText("capacity");
   String dirctories=element.getChildText("directories");
   String files=element.getChildText("files");
   System.out.println("磁盘信息:");
   System.out.println("分区盘符:"+name);
   System.out.println("分区容量:"+capacity);
   System.out.println("目录数:"+dirctories);
   System.out.println("文件数:"+files);
   System.out.println("---------------------");
   
  }
  

 }

}

 

或者如JodmXml如下:

package jdom.sample;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;


public class JdomXml {

 /**
  * @param args
  */
 public JdomXml(){}
 
 public void parseXml(File xmlFile) {
    SAXBuilder sax = new SAXBuilder();//在内存中建立一个sax文档模型
    try {
     Document xmlDom = sax.build(xmlFile);//创建文档
     //获得文件的根元素
     Element root = xmlDom.getRootElement();
     System.out.println("根元素是:"+root.getName());
    
     //获得根元素的子节点
     List childList = root.getChildren();
     Iterator listIt = childList.iterator();
     while(listIt.hasNext()){
      Element element = (Element)listIt.next();
      System.out.println("孩子结点是:"+element.getName());
     }
     System.out.println("孩子节点如下:-----------------------------");
    
     for(int i=0;i<childList.size();i++){
    
     //获得第一个孩子结点
     Element child = (Element) childList.get(i);
     //获得孩子结点的属性
     List attrList = child.getAttributes();
     Iterator attrIt = attrList.iterator();
     while(attrIt.hasNext()){
      Attribute  attr = (Attribute ) attrIt.next();
     
      System.out.println("第"+(i+1)+"个元素的属性是:"+attr.getName());
      //获得属性的值
      System.out.println("属性的值是:"+attr.getValue());
      //获得属性的类型
      System.out.println("属性的类型是:"+attr.getAttributeType());
     }
    
     List sonList = child.getChildren();
     Iterator sonIt = sonList.iterator();
     while(sonIt.hasNext()){
      Element temp = (Element)sonIt.next();
      System.out.println("属性"+temp.getName()+"的值是:"+temp.getValue());
     }
     System.out.println("------------------------");
    
     }
    
    } catch (JDOMException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  
   public static void main(String[] args) {
    JdomXml test = new JdomXml();
    test.parseXml(new File("sample.xml"));
   }
  }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数仓民工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值