dom4j解析xml详解

dom4j解析xml

在Java后台开发中有时候会碰到解析xml文件的节点、属性等需求,一般比较方便的方法是采用dom4j进行解析。
首先是需要解析的xml文件,文件内容如下

<?xml version="1.0" encoding="utf-8"?>

<UDXZip> 
  <Name> 
    <add value="SlopeLimitation.xml"/> 
  </Name>  
  <DataTemplate type="schema"> 
    <UdxDeclaration> 
      <UdxNode1> 
        <UdxNode name="slope_limitation" type="DTKT_INT | DTKT_LIST" description="slope_limitation"/> 
      </UdxNode1> 
    </UdxDeclaration> 
  </DataTemplate>
</UDXZip>

通过Document 来读取xml,并获取根元素

//将string串读取为xml
 Document configXML = DocumentHelper.parseText(content.toString());
 //获取根元素
Element root = configXML.getRootElement();

此时,获取的根元素root即为xml中对应的UDXZip元素,取节点以及属性值时通过.element()和.attributeValue()来获取。

  • 对于示例中的xml文件来说,root中的element元素有两个,包括Name与DataTemplate
    • Name的element元素包括add元素,Name节点无attribute。add元素无element,但是包含属性“value””,attribute为.attributeValue(“value”)为SlopeLimitation.xml
    • DataTemplate包含属性以及子元素。属性为type,子元素为UdxDeclaration
      • UdxDeclaration包含子元素,但不包含属性值。子元素为UdxNode1
        • UdxNode1不包含属性值,包含子元素,子元素为UdxNode
          • UdxNode 不包含子元素,包含三个属性。均可通过.attributeValue(“属性名”)取得。下面是示例代码
//取DataTemplate节点的type值,为schema
dataTemplate = root.element("DataTemplate").attributeValue("type");
//取UdxNode节点的几个属性值,分别是slope_limitation、DTKT_INT | DTKT_LIST以及slope_limitation
dataTemplate = root.element("DataTemplate").element("UdxDeclaration").element("UdxNode1").element("UdxNode").attributeValue("name");
dataTemplate = root.element("DataTemplate").element("UdxDeclaration").element("UdxNode1").element("UdxNode").attributeValue("type");
dataTemplate = root.element("DataTemplate").element("UdxDeclaration").element("UdxNode1").element("UdxNode").attributeValue("description");

通过以上方法,即可获得xml的各种数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值