package com.yzf.fintax.task.utils;

import com.yzf.fintax.task.constant.HzrwTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import java.util.ArrayList;
import java.util.List;

/**
 * @author PSY
 * @date 2020/7/29 9:54
 * @description 回执信息的节点增加工具类
 */

public class MergeXmlUtil {

    public static String getMergeXml(String hzxxXml, String shenbaoxml, Byte subType) {
        Document hzxxTemp = null;
//        不是属于申报回执的就直接返回回执的信息
        if (!HzrwTypeEnum.HZRW_TYPE_SB.equalType(subType.intValue()) || StringUtils.isBlank(shenbaoxml)) return hzxxXml;
        try {
            Element utf8ShenBao = getUtf8Element(shenbaoxml);
            //      需要增加的节点信息内容集合
            List<Element> taskItems = utf8ShenBao.elements("TaskItem");


            hzxxTemp = getUtf8Document(hzxxXml);
            Element rootElement = hzxxTemp.getRootElement();
            for (Element element : taskItems) {
                rootElement.add((Element) element.clone());
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return hzxxTemp == null ? hzxxXml : hzxxTemp.getRootElement().asXML();
    }

    //   获取utf-8的节点信息
    private static Element getUtf8Element(String xmlInfo) throws DocumentException {
        if (StringUtils.isBlank(xmlInfo)) {
            return null;
        }
//      转成xml编码
        Document document = DocumentHelper.parseText(xmlInfo);
//      将utf-8的xml文档取出内容
        Document utf8Document = DocumentHelper.parseText(document.asXML());
        return utf8Document.getRootElement();
    }

    private static Document getUtf8Document(String xmlInfo) throws DocumentException {
        if (StringUtils.isBlank(xmlInfo)) {
            return null;
        }
        Document document = DocumentHelper.parseText(xmlInfo);
        return DocumentHelper.parseText(document.asXML());
    }

}

仅仅做为自己的参考

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐