关于XML的解析

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <tb1>
      <Area>东城区 </Area>
      <Area>西城区</Area>
      <Area>崇文区</Area>
      <Area>宣武区</Area>
      <Area>朝阳区</Area>
  </tb1>
  <tb2>
      <Area>和平区</Area>
      <Area>河东区</Area>
      <Area>河西区</Area>
      <Area>南开区</Area>
      <Area>河北区</Area>
      <Area>红桥区</Area>
  </tb2>
</root>


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

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XMLOper {
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main(String[] args) {
        SAXReader reader = new SAXReader();
        File file = new File("d:\\test.xml");        
        try {
            Document document = reader.read(file);
            Element root = document.getRootElement();
            Element tb1 = root.element("tb1");
            List<Element> elements = tb1.elements();
            for(Iterator it = elements.iterator();it.hasNext();){
                Element area = (Element)it.next();
                System.out.println(area.getText());
            }
            
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
}



2.....................
//存放每一个节点中获取的数据  
 private Map map=new Map();
   
 File f=new File("市区.xml");
//定义工厂 API,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器
 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//定义 API, 使其从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个 Document doc。
 DocumentBuilder builder=factory.newDocumentBuilder();
 Document doc = builder.parse(f);
 
//按文档顺序返回包含在文档中且具有给定标记名称的所有 Element 的 NodeList
  NodeList nl = doc.getElementsByTagName("tb1");
//遍历每一个nodelist对象  
  for (int i=0;i<nl.getLength();i++){
  //主要为了获取节点数量   
  NodeList n2 = doc.getElementsByTagName("Area");
  //存放一个节点中的所有数据
  ArrayList<String> a=new ArrayList<String>();
  for (int j=0;j<n2.getLength();j++)
  {
  a.add(doc.getElementsByTagName("tb1").item(j).getFirstChild().getNodeValue());
  }
    
  map.add(a);
   }
}catch(Exception e){
 e.printStackTrace();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值