首页 > 其他分享 >dom4j操作Element节点方法

dom4j操作Element节点方法

时间:2023-09-19 10:34:44浏览次数:40  
标签:information elements DTO dom4j Element root 节点

1.获取文档的根节点
Element rootElm = document.getRootElement(); 

2.取得某节点的单一子节点
Element memberElm=root.element("tagName");

3.取得节点的文字
String text=root.elementText("name");

4.取得某节点下名为"member"的所有字节点并进行遍历
List nodes = rootElm.elements("member"); 
for (Iterator it = nodes.iterator(); it.hasNext();) { 
  Element elm = (Element) it.next(); 
  //TODO
} 

5.对某节点下的所有子节点进行遍历
for(Iterator it=root.elementIterator();it.hasNext();){ 
  Element element = (Element) it.next(); 
  //TODO
} 

6.在某节点下添加子节点
Element tagAdd= newMemberElm.addElement("tag");

7.设置节点文字
tagAdd.setText("29"); 

8.删除父节点下的某一子节点
parentElm.remove(childElm);

eg:
            //创建一个SAXReader对象
            SAXReader reader = new SAXReader();
            if (StringUtils.isNotEmpty(DTO.getImageUrl())) {
                doc = reader.read(DTO.getImageUrl());
            } else {
                doc = reader.read(new ByteArrayInputStream
                        (Base64.getDecoder().decode(DTO.getBase64Data())));
            }
            //得到xml根节点
            Element root = doc.getRootElement();
            //遍历子元素
            List<Element> elements = root.elements();
            for (Element e : elements) {
            //类型
            if ("Header".equals(e.getName())) {
                verifyHeaderForXml(in, e);
            }
            if ("Data".equals(e.getName())) {
                Element information = e.element("information ");
                in.setXX(getElementIfExist(information , "information "));
            }
           }




标签:information,elements,DTO,dom4j,Element,root,节点
From: https://www.cnblogs.com/chillymint/p/17713965.html

相关文章

  • Cascader级联选择器多选时获取所有选中状态的节点和半选状态的节点的数组集合
    <!--Cascader级联选择器组件--><el-cascaderv-model="query.companyList"ref="searchCompanyCascaderRef":options="permissionCompanyTree":props="companyCascaderProp"collapse-tagsclearable></el......
  • OpenStack(Train版)-部署keystone(controller节点)
    三、部署keystone(controller节点)3.1.1、简介3.1.1.1、作用1.用户管理:验证用户身份信息合法性2.认证服务:提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。3.Keystone是Openstack用来进行身份验证(authN)及高级授权(authZ)的身份识别服务,目前支持基......
  • NextJS应用中的Stripe Elements未显示
    如果在Next.js应用中使用StripeElements时未能正确显示,请尝试以下解决方案:确保正确引入Stripe.js库:在Next.js应用中使用StripeElements之前,需要确保正确引入Stripe.js库。你可以在<Head>组件中引入Stripe.js库,例如:importHeadfrom'next/head';functionMyComponent(){ret......
  • 【错误异常】The content of element type "mapper" must match "(cache-ref|cache|re
    Thecontentofelementtype"mapper"mustmatch"(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|select*)+". 服务启动异常 排查mapper.xml1、标签是否完整<insert></insert><delete></delete>&l......
  • KingbaseES V8R6集群运维案例之---在线扩容节点通讯故障问题
    案例说明:KingbaseESV8R6集群节点之间通过ssh或securecmdd工具通讯,默认节点之间通过公钥和私钥方式认证,可以密码通讯;在执行集群节点扩容时,出现以下故障,节点之间仍需要输入密码进行连接:适用版本:KingbaseESV8R6一、问题分析1、测试节点securecmdd通讯如上所示:通过securec......
  • FSICO-BACOS单机四节点到Webase平台搭建简洁步骤
    bashbuild_chain.sh-l127.0.0.1:4-p30300,20200,8545其中-l指定ip列表,-p表示p2p,....端口号,生成的四个节点端口号为30300~30303安装ubuntu依赖sudoaptinstall-yopensslcurl安装centos依赖sudoyuminstall-yopensslopenssl-devel第二步.创建操作目......
  • vue elementplus 使用cellRenderer重写单元格,滑动滚动条渲染复选框出现错误
    使用elementplus的虚拟表格,动态加载表头的时候,第一列为复选框;但是在滚动滑动条的时候出现了一个奇怪的现象;我选择了4和5,当我滑动滚动条的时候如下: 像是复选框跟着在动; 通过跟踪代码,查出问题;在cellRenderer中打印checked的值发现问题,大滚动的时候,打印出来的都是undefined,渲......
  • element ui 多选框(是否可以勾选)
    #1.添加属性 selectable     <el-table-column width="50"type="selection"align="center":selectable="handleSelectable"/>#2. 编写函数  handleSelectable(row){   if(row.text===1){#改行不允许勾选   ......
  • element ui 禁止全选(隐藏全选按钮)
    #1.给table添加一个类型''all-select<el-tableheader-cell-class-name="all-select"/>#2.修改全选按钮的样式<stylelang="scss"scoped>::v-deep.selectAllbtnDis.cell.el-checkbox__inner{ display:none;}&......
  • 从零开始使用vue2+element搭建后台管理系统(动态表单实现(含富文本框))[待完善]
    在后台项目的实际开发过程中,涉及到表单的部分通常会使用动态渲染的方案进行实现,由后端接口返回表单配置,前端进行遍历渲染。考虑到通用后台需要具备的功能,除了基础的表单项如输入、下拉、多选、开关、时间、日期等,还需要具备上传、富文本框等功能。首先导入一个百度来的富文本框插......