xml的组装与解析(十分钟学会)

一.xml的解析

话不多说直接上代码

1.引入pom依赖

// 解析xml
<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.1</version></dependency>

首先要注意,这个依赖用的是org.jsoup下的包。使用这个来解析xml

1.代码示例:对于字符串的解析

// 解析字符串
//本段代码主要用于解析到img标签,从而替换掉里面的内容
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public static void main(String[] args) {String text ="<imgid=\\\"69911104\\\"src=\\\"https://imgnews.gmw" +              ".cn/attachement/jpg/site2/20210912/f44d305ea07322a753a948.jpg\\\" title=\\\"test\\\" " +"alt=\\\"test\\\"/>";        List<String> pathList = new ArrayList<>();Document doc  = Jsoup.parse(text);Elements link = doc.getElementsByTag("img");for (int i = 0; i < link.size(); i++) {String src = link.get(i).attr("src");pathList.add(src);String[] split = src.split("/");String s = split[split.length - 1];Element src1 = link.get(i).attr("src", s);src1.removeAttr("id");src1.removeAttr("title");src1.removeAttr("alt");System.out.println(src1);}System.out.println(doc.toString());}

控制台输出:

2.代码示例:对于文件的解析

// 代码相差无几,不再演示
public static void main(String[] args) throws DocumentException {List<String> pathList = new ArrayList<>();SAXReader sax=new SAXReader();Document document = new Document("输入文件的路径");Elements link = document.getElementsByTag("img");for (int i = 0; i < link.size(); i++) {String src = link.get(i).attr("src");pathList.add(src);String[] split = src.split("/");String s = split[split.length - 1];Element src1 = link.get(i).attr("src", s);src1.removeAttr("id");src1.removeAttr("title");src1.removeAttr("alt");System.out.println(src1);}System.out.println(document.toString());}

二.xml的组装

1.引入pom依赖

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

注意!!!此处两个包名称并不一样

直接上代码:

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
// 代码
// 1.声明文件名称
//传出一个文件路径,会输出到这个文件路径下
public static String getXml( String path) {// 1.声明文件名称String fileName = "article";// 2.创建dom对象Document document = DocumentHelper.createDocument();// 3.添加节点,根据需求添加Element article = document.addElement("article");Element resultMap = article.addElement("resultMap");// 4、格式化模板OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");// 5、生成xml文件String completPath = path + fileName + ".xml";//newByteArrayOutputStream out = new ByteArrayOutputStream();try {XMLWriter writer = new XMLWriter(out, format);writer.setEscapeText(false);writer.write(document);writer.close();} catch (IOException e) {}// 6、生成的XML文件// 7、利用文件输出流输出到文件try (FileOutputStream fos = new FileOutputStream(completPath)) {fos.write(out.toByteArray());} catch (IOException e) {e.printStackTrace();}return completPath;}

xml导出字符流转换会导致标签发生转义

//如果不想xml内容转义加上这行代码
//表述忽略标签流
writer.setEscapeText(false);

两个报名都不一样但是实体类名称都一样,建议封装成两个实体类,这样代码清晰一点。

关键词:java解析xml,java组装xml,java拼接xml,java生成xml文件

java中xml的组装与解析(十分钟学会)相关推荐

  1. 第70节:Java中xml和tomcat

    第70节:Java中xml和tomcat 前言: 哭着也要看完,字数: jdbc crud - statement dao java.sql.Driver The interface that eve ...

  2. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  3. Java中4大基本加密算法解析

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一, 大家可以查看RFC2045- RFC2049, 上面有MIME的详细规范. 简单的java加密算法有: BASE64 严格地说, ...

  4. 第20讲:Mybatis 中 XML 文件是如何解析的?

    大家好,我是田哥 本文是MyBatis源码分析系列文章的第20篇讲,本文主要内容:MyBatis 中 XML 文件是如何解析的? 从这一节开始,我们讲开启MyBatis源码分析阶段,下面我们以xml方 ...

  5. 一些生活中简单可用的技能--十分钟学会,终生受益

    一些日常生活中简单可用的技能 十分钟学会,终生受益 工作 学习 生活 社交 十分钟学会,终生受益 下面的文章是从知乎高赞回答中"日常生活中有哪些十分钟就能学会并可以终生受用的技能?" ...

  6. 虚拟局域网软件开源_玩转虚拟机,十分钟学会一台电脑安装3个操作系统

    玩转虚拟机,十分钟学会一台电脑安装3个操作系统 本文目录 一.什么是虚拟机 1.普通虚拟机 2.Java虚拟机 二.虚拟机的作用 三.虚拟机的安装需求 四.常用的虚拟机软件 1.VMware虚拟机 2 ...

  7. 十分钟学会win10系统封装之系列教程(一):在VMware Workstation虚拟机上安装win10母盘系统

    关于系统封装这个话题,历来就一直受到很多小伙伴的青睐,很多同学都认为会封装系统是一件很高大上的事情,所以一直都有很多小伙伴向亦是美网络小编询问到底什么时候能出一些关于win10系统封装的教程,其实小编 ...

  8. Java中Xml解析详解 DOM、SAX、JDOM、DOM4J

    1.1 什么是XML 一种表示结构化信息的标准方法,以使计算机能够方便地使用此类信息,并且人们可以非常方便地编写和理解这些信息.XML 是 eXtensible Markup Language(可扩展 ...

  9. JAVA中xml文件解析几种方式

    1. DOM解析xml /*** DOM解析xml* @param xmlPath xml文件路径*/public static void getInfoByDom(String xmlPath){D ...

最新文章

  1. 就算是戴上口罩,AI也知道你在说什么
  2. 深度学习为什么要resize_为什么要学习演讲与口才
  3. 阿里巴巴Java“代码反潜机”P3C喜提首届中国优秀开源项目二等奖!
  4. linux命令:sosreport
  5. php 16进制转换utf-8,php对unicode转utf-8编码
  6. 关于通配泛型类型有几种_5.7 泛型通配符和类型参数的范围
  7. 独家报道:众说纷纭 云安全究竟为何物?
  8. windows设备坐标和逻辑坐标的转换
  9. nodejs 创建一个静态资源服务器 +路由
  10. Spring容器创建流程(5)bean后置处理之注册
  11. layui表格取消横向滚动条_layui滑动条如何隐藏
  12. 上海卓道医疗完成千万级Pre-A轮融资,幂方资本领投...
  13. 疫情,降薪,跳槽工作难找,任务重加班多,程序员的出路在何方?
  14. 面试(软件实施工程师)
  15. Java连接SAP ————JCO 3.0技术详解
  16. intellij idea 2017破解
  17. python输出右对齐_python怎么右对齐
  18. SpringBoot2源码笔记
  19. 入门学习UI设计有哪些就业方向?
  20. 中国化肥行业运行形势与投资策略研究报告2022版

热门文章

  1. 06 Broadcasting Services Over 5G NR Enabled Multi-Beam Non-Terrestrial Networks
  2. caoz的梦呓:所谓打破信息不对称,其实是一种幻觉
  3. margin取负值详解
  4. 服务器部署Vue脚手架工程,以及遇到的问题总结
  5. Python实例方法、静态方法、类方法
  6. 无线路由器WDS设置
  7. 字符串与ascii的转换
  8. 【CQF Finance Class 1 现金时间价值】
  9. 自制Console线(已测试CISCO3560可用)
  10. JavaScript(二十一)淘宝购物车demo