精华内容
下载资源
问答
  • 2022-02-11 15:17:46

    之前在处理xml文件时用到dom4j但是感觉还是繁琐了些,今天发现了另一种方式处理更为简便些,记录下来方便你我他
    首先引入下面两个jar包

    <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20160810</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.3</version>
            </dependency>
    

    转换代码

    String testResultFile = "/usr/test.xml";
            File file = new File(testResultFile);
            InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
            String s = IOUtils.toString(inputStream);
            JSONObject jsonObject = XML.toJSONObject(s);
            String s=jsonObject.toString();
    

    搞定。后面我们就可以随心所欲处理转换后的json字符串了

    更多相关内容
  • java解析xml文件

    千次阅读 2022-03-30 22:04:20
    java解析xml常用的2种方法 第一种 dom解析 第二种 dom4j解析 <?xml version="1.0" encoding="UTF-8"?> <books> <book id="001"> <id>9</id> <title>Harry Potter</title&...

    java解析xml常用的2种方法(这2种可以解决开发中遇到的xml解析的所有问题)

    第一种 dom解析

    <?xml version="1.0" encoding="GBK"?>
    <address>
    	<linkman>
    		<name>Van_DarkHolme</name>
    		<email>van_darkholme@163.com</email>
    	</linkman>
    	<linkman1>
    		<name>Bili</name>
    		<email>Bili@163.com</email>
    	</linkman1>
    </address>
    
    public void readXml() throws Exception {
            //建立DocumentBuilderFactor,用于获得DocumentBuilder对象:
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            //建立DocumentBuidler;
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            //import org.w3c.dom.Document;
            Document document = documentBuilder.parse(new File("D:/1.xml"));
            NodeList node = document.getElementsByTagName("linkman");
            for (int i = 0; i < node.getLength(); i++) {
                Element e = (Element)node.item(i);
                String name = e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
                String email = e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue();
                System.out.println(name);
                System.out.println(email);
            }
    

    结果

    Van_DarkHolme
    van_darkholme@163.com
    

    第二种 dom4j解析

    <?xml version="1.0" encoding="UTF-8"?>
    <books>
       <book id="001">
          <id>9</id>
          <title>Harry Potter</title>
          <author>J K. Rowling</author>
       </book>
       <book id="002">
          <title>Learning XML</title>
          <author>Erik T. Ray</author>
       </book>
       <book1 id="003">
          <title>Learning XML111</title>
          <author>Erik T. Ray111</author>
       </book1>
    </books>
    

    引入dom4j jar包

      <dependency>
                <groupId>org.dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>2.1.3</version>
            </dependency>
    

    代码

     public void readXml() throws Exception{
           //1.创建Reader对象
            SAXReader saxReader = new SAXReader();
             //2.加载xml
            Document document = saxReader.read(new File("D:/1.xml"));
            //3.获取根节点
            Element rootElement = document.getRootElement();
            // rootElement.elements()获取根节点下所有的节点,
            List<Element> elements = rootElement.elements();
            //获取节点book1下属性为id的值 003
           rootElement.element("book1").attribute("id").getValue()for (Element element : elements) {
                //依次遍历根节点下的节点  book book book1
                element.getName();
                //依次遍历根节点下的节点对应属性为id的值 001 002 003
                System.out.println(element.attribute("id").getValue());
                System.out.println("----------------------------");
                //同样道理 继续依次获取该节点下的节点 
                List<Element> child = element.elements();
                for (Element element1 : child) {
                    /依次/获取子节点  id title author   、title  author、title author  
                     element1.getName();
                     //依次获取子节点的值 9  Harry Potter  J K. Rowling、.......
                    System.out.println(element1.getText());
                }
            }
            // 获取第二个节点book的属性为id的值 002
            elements.get(1).attribute("id").getValue();
            // 获取根节点下第二个节点book所有节点
            List<Element> elements1 = elements.get(1).elements();
            //获取根节点下第二个节点book节点下的第二个节点author的值 Erik T. Ray
             elements.get(1).elements().get(1).getText();
        }
    

    使用dom解析将xml树结构全部加载到内存中,保留了树结构,可以对树结构进行增删改 但是xml过大会导致内存溢出
    dom4j的SAXread是一行一行的解析的,不会产生内存问题,但是不能进行增删改操作

    展开全文
  • Java导入xml文件

    2021-07-02 14:03:17
    需求:前后端分离项目,后端Springboot框架,将学生信息通过xml文件格式导入。 一个学生信息,以及该学生选择的学科。 student.xml文件格式如下: StudentController.java @PostMapping("import/xml") ...

    需求:前后端分离项目,后端Springboot框架,将学生信息通过xml文件格式导入。

    一个学生信息,以及该学生选择的学科。

    student.xml文件格式如下:

    StudentController.java

        @PostMapping("import/xml")
        public void importXml(@RequestBody MultipartFile file){
             studentService.importXml(file);
        }

    StudentService.java

    void importXml(MultipartFile file);

    StudentServiceImpl.java

    @Override
        public void importXml(MultipartFile file) {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = null;
            StudentDto dto = new StudentDto();
            try {
                builder = factory.newDocumentBuilder();
                Document document = builder.parse(file.getInputStream());
                //解析info节点
                NodeList infoNodeList = document.getElementsByTagName("info");
                Student student= analysisImportXmlInfo(infoNodeList);
    
                //解析nodes节点
                NodeList elementSubjectList = document.getElementsByTagName("subjects");
                List<Subject> subjects= analysisImportXmlSubjects(elementSubjectList );
                //保存入库
                saveDataInfo(dto);
            } catch (Exception e) {
               
                e.printStackTrace();
               
            }
          
        }
    
    
    private Student analysisImportXmlInfo(NodeList infoNodeList){
            Student student = new Student();
            for (int i=0;i<infoNodeList.getLength();i++){
                Element element = (Element) infoNodeList.item(i);
                if (element.getElementsByTagName("no").item(0).getFirstChild() != null){
                    student.setNo(element.getElementsByTagName("no").item(0).getFirstChild().getNodeValue());
                }
                if (element.getElementsByTagName("name").item(0).getFirstChild() != null){
                    student.setName(element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
                }
                if (element.getElementsByTagName("age").item(0).getFirstChild() != null){
                    student.setAge(element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
                }
            }
            return student;
        }
    
    
    
    private  List<Subject> analysisImportXmlSubjects(NodeList elementSubjectList ){
            List<Subject> subjects = new ArrayList<>();
            if (elementSubjectList .getLength() < 1) {
                return new ArrayList<>();
            }
            Element element = (Element) elementSubjectList .item(0);
            NodeList idList = element.getElementsByTagName("id");
            for (int i = 0;i<idList.getLength();i++) {
                Subject subject = new Subject();
                if (element.getElementsByTagName("score").item(i).getFirstChild() != null) {
                    subject.setScore(element.getElementsByTagName("score").item(i).getFirstChild().getNodeValue());
                }
                if (element.getElementsByTagName("subjectName").item(i).getFirstChild() != null) {
                    subject.setSubjectName(element.getElementsByTagName("subjectName").item(i).getFirstChild().getNodeValue());
                }
                subjects .add(subject);
            }
            return subjects ;
        }

    展开全文
  • Xml代码1 2 3 4 A12345 河南省郑州市6 7 8 B12349 河南省郑州市二七区10 11 第一种 DOM 实现方法:1 import java.io.File;23 import javax.xml.parsers.DocumentBuilder;4 import javax.xml.parsers....

    Xml代码

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 <?xml version="1.0" encoding="GB2312"?>

    2

    3

    4 A1234

    5 河南省郑州市

    6

    7

    8 B1234

    9 河南省郑州市二七区

    10

    11

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    第一种 DOM 实现方法:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 import java.io.File;

    2

    3 import javax.xml.parsers.DocumentBuilder;

    4 import javax.xml.parsers.DocumentBuilderFactory;

    5

    6 import org.w3c.dom.Document;

    7 import org.w3c.dom.NodeList;

    8

    9 public class MyXMLReader2DOM {

    10 public static void main(String arge[]) {

    11

    12 long lasting = System.currentTimeMillis();

    13

    14 try {

    15 File f = new File("data_10k.xml");

    16 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    17 DocumentBuilder builder = factory.newDocumentBuilder();

    18 Document doc = builder.parse(f);

    19 NodeList nl = doc.getElementsByTagName_r("VALUE");

    20 for (int i = 0; i < nl.getLength(); i++) {

    21 System.out.print("车牌号码:"+ doc.getElementsByTagName_r("NO").item(i).getFirstChild().getNodeValue());

    22 System.out.println("车主地址:"+ doc.getElementsByTagName_r("ADDR").item(i).getFirstChild().getNodeValue());

    23 }

    24 } catch (Exception e) {

    25 e.printStackTrace();

    26 }

    27 }

    28 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    第二种,DOM4J实现方法

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 import java.io.*;

    2 import java.util.*;

    3 import org.dom4j.*;

    4 import org.dom4j.io.*;

    5

    6 public class MyXMLReader2DOM4J {

    7 public static void main(String arge[]) {

    8 long lasting = System.currentTimeMillis();

    9 try {

    10 File f = new File("data_10k.xml");

    11 SAXReader reader = new SAXReader();

    12 Document doc = reader.read(f);

    13 Element root = doc.getRootElement();

    14 Element foo;

    15 for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {

    16 foo = (Element) i.next();

    17 System.out.print("车牌号码:" + foo.elementText("NO"));

    18 System.out.println("车主地址:" + foo.elementText("ADDR"));

    19 }

    20 } catch (Exception e) {

    21 e.printStackTrace();

    22 }

    23 }

    24 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    第三种 JDOM实现方法:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 import java.io.*;

    2 import java.util.*;

    3 import org.jdom.*;

    4 import org.jdom.input.*;

    5

    6 public class MyXMLReader2JDOM {

    7 public static void main(String arge[]) {

    8 long lasting = System.currentTimeMillis();

    9 try {

    10 SAXBuilder builder = new SAXBuilder();

    11 Document doc = builder.build(new File("data_10k.xml"));

    12 Element foo = doc.getRootElement();

    13 List allChildren = foo.getChildren();

    14 for (int i = 0; i < allChildren.size(); i++) {

    15 System.out.print("车牌号码:"+ ((Element) allChildren.get(i)).getChild("NO").getText());

    16 System.out.println("车主地址:"+ ((Element) allChildren.get(i)).getChild("ADDR").getText());

    17 }

    18 } catch (Exception e) {

    19 e.printStackTrace();

    20 }

    21 }

    22 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    第四种SAX实现方法:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 import javax.xml.parsers.SAXParser;

    2 import javax.xml.parsers.SAXParserFactory;

    3

    4 import org.xml.sax.Attributes;

    5 import org.xml.sax.InputSource;

    6 import org.xml.sax.SAXException;

    7 import org.xml.sax.helpers.DefaultHandler;

    8

    9 public class MyXMLReader2SAX extends DefaultHandler {

    10

    11 java.util.Stack tags = new java.util.Stack();

    12

    13 public MyXMLReader2SAX() {

    14 super();

    15 }

    16

    17 public static void main(String args[]) {

    18 long lasting = System.currentTimeMillis();

    19 try {

    20 SAXParserFactory sf = SAXParserFactory.newInstance();

    21 SAXParser sp = sf.newSAXParser();

    22 MyXMLReader2SAX reader = new MyXMLReader2SAX();

    23 sp.parse(new InputSource("data_10k.xml"), reader);

    24 } catch (Exception e) {

    25 e.printStackTrace();

    26 }

    27

    28 System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)

    29 + "毫秒");

    30 }

    31

    32 public void characters(char ch[], int start, int length)

    33 throws SAXException {

    34 String tag = (String) tags.peek();

    35 if (tag.equals("NO")) {

    36 System.out.print("车牌号码:" + new String(ch, start, length));

    37 }

    38 if (tag.equals("ADDR")) {

    39 System.out.println("地址:" + new String(ch, start, length));

    40 }

    41 }

    42

    43 public void startElement(String uri, String localName, String qName,

    44 Attributes attrs) {

    45 tags.push(qName);

    46 }

    47 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    展开全文
  • 单独用java写布局维护很麻烦,而且写起来不直观,这种情况可以用在一部分布局需要动态更改,一部分不会更改的情况,这样只用维护少量的动态的布局代码即可。
  • xml中声明自定义的bean和引入bean引入bean中的内容,自定义bean代码随意package com.shiro.utils;import org.springframework.beans.BeansException;import org.springframework.beans.factory....
  • java与XML:XML语言语法格式以及解析一、初识XML二、XML语法格式三、XML解析四、JAVA生成XML五、XStream的使用 一、初识XML 简介 可扩展标记语言(extensible ...不要将XML语言狭隘的理解为xml文件 xml与html的区
  • spring boot如何引入XML文件

    千次阅读 2018-11-14 17:05:02
    Spring boot框架建议我们使用Java配置的方式去配置系统的应用,但是如果有时候我们必须要使用到XML...注解的源代码如下,可以看到value和locations都是字符串数组,所以我们可以传递多个XML文件 @Retention(Ret...
  • 1、普通配置的xml文件引入 外部文件 <import resource="classpath:a.xml" />(相对路径) 2、web.xml引入外部xml文件 (1) [<!ENTITY 自定义名称 SYSTEM "file:///D:/eclipse/a.xml"><web-app>...
  • JavaXML转为PDF

    2022-03-10 14:54:09
    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性。通过将XML转换为PDF,能够便于文件传输及共享。本文,将介绍通过Java代码来实现该格式转换的方法。 导入Jar 在程序...
  • 写一个Java程序引用xsd文件验证xml文件的有效性,若是xml文件格式有效返回true,否则返回false。
  • JavaXML的概念与语法

    2020-12-15 21:46:36
    1. XML概念: Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的。 2.xml 的作用 xml 的主要作用有: 1、用来保存数据,而且这些数据具有自我描述性 2、它还可以做为项目或者模块的配置...xml文档
  • java 实现的xml文件的读写 XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 。由于笔者所从事的...
  • java验证xml是否规范_Java XML验证API

    千次阅读 2020-07-02 16:13:58
    它使您能够快速检查输入内容是否大致符合您的期望,并快速拒绝任何与流程无法处理的文档。 如果数据有问题,最好早发现。 在可扩展标记语言(XML)的上下文中,验证通常涉及使用几种架构语言(例如,万维网联合会...
  • 答案是@ImportResource注解, 假设BlankDisc定义在名为cd-config.xml文件中, 该文件位于根类路径下, 那么可以修 改SoundSystemConfig, 让它使用@ImportResource注解, 如下所示:    两个bean——配置在...
  • Java日志--logback--XML用法

    多人点赞 2021-11-03 10:26:22
    在Logback的xml文件中可以通过 property标签来指定属性,其他地方就可以直接引用了。 法1:直接配置参数值 <configuration> <property name="USER_HOME" value="/home/sebastien" /> <...
  • XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束,其本质区别在于Schema本身也是一个XML文件,可以被XML解析器解析,而且可以为XML承载的数据定义类型,约束能力较之DTD更强大。 对XML的解析主要有...
  • xml文件解析 (DOM4J解析XML) -java

    千次阅读 2021-05-19 17:47:29
    2、更改项目配置2、编写一个简单的本地XML文件3、解析本地XML文件:二、解析网络上的XML文件1.网址:2、来解析此网络XML文件总结 前言 今天,我们对xml文件进行解析。分别对本地的xml文件和网络上的xml文件进行...
  • xml引入另一个xml文件A file with the .xml file extension is an Extensible Markup Language (XML) file. These are really just plain text files that use custom tags to describe the structure and other ...
  • 在上述xml文件中加以下内容: <!DOCTYPE persons SYSTEM '.dtd文件的路径'> SYSTEM表示引入的是本地dtd文件;persons为根标签 方式二:在xml文件内部引用 <!DOCTYPE persons [ <!ELEMENT persons ...
  • Java XML解析工具类

    千次阅读 2021-06-10 18:09:51
    本身是有个需求,讲三方公司的XML请求文件中的Response里的属性赋值成java对象,没做完不需要了,只做到了解析,后续本来想利用解析出来的key进行遍历,利用FTL模板生成Java文件,有这个需求的小伙伴可以延续这个...
  • 1.8 引入XML Schema 文档

    2019-10-07 15:29:19
    1.8.1 使用名称空间引入 XML Schema 文档 声明 XML 实例文档遵循某个 XML Schema 文档的方式之一就是使用名称空间,但是,表示名称空间的 URI 并不代表相应的 XML Schema文件的存储位置,所以,应用程序不能根据 ...
  • JAVA使用dom4j读取xml文件java的项目中,我们可能会使用到xml文件来保存一些配置或信息,下面记录如何从xml文件读取值 一、导入dom4j的jar包 从maven的镜像库https://mvnrepository.com/ 搜索dom4j,选择使用...
  • xml数据也可以以其他的方式存在(如在内存中构建xml数据),不能将xml语言狭隘的理解成xml文件 XML语法格式: 首先,我们需要XML文档声明 <?xml version="1.0" encoding="UTF-8"?> 1.标记(元素/标签/
  • java读取xml路径

    2021-03-05 23:30:39
    2.xml 文件放在/WEB-INF/classes 目录下或 class......JAVA读取xml文件中节点值_计算机软件及应用_IT/计算机_专业资料。pub...使用Java读写XML文档_计算机软件及应用_IT/计算机_专业资料。Java ....getCo...
  • java读取配置文件的几种方法

    千次阅读 2021-03-04 04:24:56
    原标题:java读取配置文件的几种方法 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会...读取xml配置文件(一)新建一个java bean(HelloBean.java)java 代码package chb.demo.vo;public class HelloBe...
  • 使用java版的aspose-words,处理doc.docx文件,亲测doc,docx转换图片/pdf无水印,无时间限制,压缩包包含aspose-words相关jar包和破解文件license.xml。警告:请勿用于商业用途,仅供学习研究,如有任何版权纠纷,...
  • mybatis-config.xml可以引用java属性文件中的配置信息如下: 在classpath下定义db.properties文件, jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root ...
  • mybatis 的xml文件中调用java的方法

    千次阅读 2021-08-05 17:04:22
    1 直接调用java中的方法 rate = '${@com.hcycom.porttoport.util.ValidateRate@getRate(item)}' ValidateRate 是类名,getRate 是方法名,必须是静态方法item 接收到的参数。 public class ValidateRa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 311,577
精华内容 124,630
关键字:

java引入xml文件

java 订阅