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(“属性名”)取得。下面是示例代码
- UdxNode1不包含属性值,包含子元素,子元素为UdxNode
- UdxDeclaration包含子元素,但不包含属性值。子元素为UdxNode1
//取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