欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

dom4j解析xml详解

程序员文章站 2022-07-05 11:34:57
dom4j解析xml在Java后台开发中有时候会碰到解析xml文件的节点、属性等需求,一般比较方便的方法是采用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的各种数据

本文地址:https://blog.csdn.net/qq_38502918/article/details/107491429

相关标签: 后端 java