万能的XML解析方法,获取指定字段值

上代码:

java 复制代码
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
    
    public String handleXmlResponse(String response,String field) {
        if(StringUtils.isBlank(field)){
            return response;
        }
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(new StringReader(response));
            Element root = document.getRootElement();
            return getFieldValue(root, field);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return null;
    }

    public String getFieldValue(Element element, String fieldName) {
        for (Iterator<Element> it = element.elementIterator(); it.hasNext();) {
            Element child = it.next();
            if (child.getName().equals(fieldName)) {
                return child.getText();
            } else {
                String fieldValue = getFieldValue(child, fieldName);
                if (fieldValue != null) {
                    return fieldValue;
                }
            }
        }
        return null;
    }

此方法,便于我们处理xml的回报。

相关推荐
别来无恙✲4 分钟前
SpringBoot启动方法分析
java·springboot·场景设计
今晚吃什么呢?5 分钟前
前端面试题之CSS中的box属性
前端·css
我是大龄程序员8 分钟前
Babel工作理解
前端
Jay_See11 分钟前
Leetcode——239. 滑动窗口最大值
java·数据结构·算法·leetcode
DKPT20 分钟前
Eclipse,MyEclipse,IDEA,Vscode这些编译器和JDK的相爱相杀
java·eclipse·编辑器·intellij-idea·myeclipse
CopyLower21 分钟前
提升 Web 性能:使用响应式图片优化体验
前端
肠胃炎22 分钟前
真题246—矩阵计数
java·线性代数·算法·矩阵·深度优先
南通DXZ23 分钟前
Win7下安装高版本node.js 16.3.0 以及webpack插件的构建
前端·webpack·node.js
前行的小黑炭1 小时前
设计模式:为什么使用模板设计模式(不相同的步骤进行抽取,使用不同的子类实现)减少重复代码,让代码更好维护。
android·java·kotlin
Mintopia1 小时前
深入理解 Three.js 中的 Mesh:构建 3D 世界的基石
前端·javascript·three.js