关于解析XML的一些杂谈

做了一段时间的项目,最近手头还有一些接口开发工作,关于接口开发很多涉及到XML解析和创建,下面谈一下我个人的一些见解。

首先,我们谈一下解析XML。刚到公司时我是不太会解析XML文档,个人起初基础比较薄弱,关于文件流部分学得不是很好,在后面的工作中发现这部分知识在工作中非常重要,目前解析XML的方法有很多,我就写一下我个人比较熟悉的解析方式,以下举例来说明

<?xml version="1.0"?>
  <SearchCountryResponse>
    <CountryDetails>
      <CountryDetail>
        <Country>1</Country>
        <CountryName>中国</CountryName>
        <CountryEName>China</CountryEName>
      </CountryDetail>
      <CountryDetail>
        <Country>2</Country>
        <CountryName>马来西亚</CountryName>
        <CountryEName>Malaysia</CountryEName>
      </CountryDetail>
      <CountryDetail>
        <Country>3</Country>
        <CountryName>新加坡</CountryName>
        <CountryEName>Singapore</CountryEName>
      </CountryDetail>
      <CountryDetail>
        <Country>4</Country>
        <CountryName>泰国</CountryName>
        <CountryEName>Thailand</CountryEName>
      </CountryDetail>
      <CountryDetail>
        <Country>5</Country>
        <CountryName>阿尔巴尼亚</CountryName>
        <CountryEName>Albania </CountryEName>
      </CountryDetail>

</CountryDetails>
  </SearchCountryResponse>

编写程序

public class readXML(){

public static void main(String[] args){

//先将文件读取,我的文件存放在D盘根目录下

File file = new File("D:/test.xml");

//创建Document对象

Document doc = null;

SAXReader saxReader = new SAXReader();

try{

doc = saxReader.read(file);

//得到根节点根节点是SearchCountryResponse

Element root = doc.getRootElement();

Element countryDetails = root.element("CountryDetails");

//因为下级节点时同级的相同节点,因此直接循环遍历即可

Iterator it = countryDetails.elementIterator("CountryDetail");

//下面的是遍历,如果想保存解析出来的数据到数据库,那么写一个跟解析字段对应的javabean,将解析出来的数据set到对应字段里面,再用JDBC或者hibernate连接数据库存入

while(it.hasNext()){
Element countryDetail = (Element) it.next();
String countryId = countryDetail.elementTextTrim("Country");
String countryName = countryDetail.elementTextTrim("CountryName");
String countryEName = countryDetail.elementTextTrim("CountryEName");

}


}catch(Exception e){

e.printStackTrace();

}

}

}

这种方式相对来说比较简单易懂

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值