Dom4j 解析 xml

引入依赖

 <!-- dom4j -->
 <dependency>
     <groupId>dom4j</groupId>
     <artifactId>dom4j</artifactId>
     <version>1.6.1</version>
</dependency>

xml 例子

<CertAuth>
    <success>true</success>
    <message></message>
    <parameters>
        <parameter key="_CERT_YX">
            <![CDATA[]]>
        </parameter>
        <parameter key="_CERT_DH">
            <![CDATA[]]>
        </parameter>
        <parameter key="_CERT_YHLX">
            <![CDATA[]]>
        </parameter>
        <parameter key="_CERT_SLBH">
            <![CDATA[]]>
        </parameter>
        <parameter key="_CERT_DZ">
            <![CDATA[]]>
        </parameter>
    </parameters>
</CertAuth>

使用 Dom4j 解析 XML 字符串:

//需要解析的XML串
        String strXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +"<Interface id=\"Test_V01\" content=\"output\" version=\"1.0\">"+"<property name=\"client_id\">test01</property>" +"<property name=\"project\">$ARG0</property>"+"</Interface>";
        Document doc = null;
        try {
            doc = DocumentHelper.parseText(strXml);
        } catch (DocumentException e) {
            //解析失败
            e.printStackTrace();
        }

使用 Dom4j 解析 xml 文件

 //1.创建Reader对象
SAXReader reader = new SAXReader();
//2.加载xml
Document document = reader.read(new File("src/main/resources/demo.xml"));

获取节点值

 // 获取根节点
Element rootElement = document.getRootElement();
// success 节点的值
String state = rootElement.element("success").getStringValue();

获取节点下某一指定属性值

    Element parametersNode = rootElement.element("parameters");

    private String getNodeValueByAttribute(Element parametersNode, String attribute) {
        String parameterNodeValue = null;
        Iterator iterator = parametersNode.elementIterator();
        while (iterator.hasNext()) {
            Element parameterNode = (Element) iterator.next();
            // 节点属性值
            String cert_sn = parameterNode.attributeValue("key");
            if (cert_sn.equals(attribute)) {
                parameterNodeValue = parameterNode.getStringValue();
                break;
            }
        }
        return parameterNodeValue;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值