返回顶部
首页 > 资讯 > 精选 >Java解析XML的方式有哪些
  • 352
分享到

Java解析XML的方式有哪些

2023-06-22 03:06:51 352人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Java解析XML的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。xml文件<?xml version="1.0" en

这篇文章将为大家详细讲解有关Java解析XML的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Java解析XML的方式有哪些

xml文件

<?xml version="1.0" encoding="utf-8" ?><class>    <student>        <firstname>cxx1</firstname>        <lastname>Bob1</lastname>        <nickname>stars1</nickname>        <marks>85</marks>    </student>    <student rollno="493">        <firstname>cxx2</firstname>        <lastname>Bob2</lastname>        <nickname>stars2</nickname>        <marks>85</marks>    </student>    <student rollno="593">        <firstname>cxx3</firstname>        <lastname>Bob3</lastname>        <nickname>stars3</nickname>        <marks>85</marks>    </student></class>

1.DOM方式

package com.cxx.xml;import org.w3c.dom.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;public class DomDemo {    //用Element方式    public static void element(nodeList list){        for (int i = 0; i <list.getLength() ; i++) {            Element element = (Element) list.item(i);            NodeList childNodes = element.getChildNodes();            for (int j = 0; j <childNodes.getLength() ; j++) {                if (childNodes.item(j).getNodeType()==Node.ELEMENT_NODE) {                    //获取节点                    System.out.print(childNodes.item(j).getNodeName() + ":");                    //获取节点值                    System.out.println(childNodes.item(j).getFirstChild().getNodeValue());                }            }        }    }    public static void node(NodeList list){        for (int i = 0; i <list.getLength() ; i++) {            Node node = list.item(i);            NodeList childNodes = node.getChildNodes();            for (int j = 0; j <childNodes.getLength() ; j++) {                if (childNodes.item(j).getNodeType()==Node.ELEMENT_NODE) {                    System.out.print(childNodes.item(j).getNodeName() + ":");                    System.out.println(childNodes.item(j).getFirstChild().getNodeValue());                }            }        }    }    public static void main(String[] args) {        //1.创建DocumentBuilderFactory对象        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();        //2.创建DocumentBuilder对象        try {            DocumentBuilder builder = factory.newDocumentBuilder();            Document d = builder.parse("src/main/resources/demo.xml");            NodeList sList = d.getElementsByTagName("student");            //element(sList);            node(sList);        } catch (Exception e) {            e.printStackTrace();        }    }}

结果截图

Java解析XML的方式有哪些

2.SAX方式

package com.cxx.xml;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;public class SaxDemo {    public static void main(String[] args) throws Exception {        //1.或去SAXParserFactory实例        SAXParserFactory factory = SAXParserFactory.newInstance();        //2.获取SAXparser实例        SAXParser saxParser = factory.newSAXParser();        //创建Handel对象        SAXDemoHandel handel = new SAXDemoHandel();        saxParser.parse("src/main/resources/demo.xml",handel);    }}class SAXDemoHandel extends DefaultHandler {    //遍历xml文件开始标签    @Override    public void startDocument() throws SAXException {        super.startDocument();        System.out.println("sax解析开始");    }    //遍历xml文件结束标签    @Override    public void endDocument() throws SAXException {        super.endDocument();        System.out.println("sax解析结束");    }    @Override    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {        super.startElement(uri, localName, qName, attributes);        if (qName.equals("student")){            System.out.println("============开始遍历student=============");            //System.out.println(attributes.getValue("rollno"));        }        else if (!qName.equals("student")&&!qName.equals("class")){            System.out.print("节点名称:"+qName+"----");        }    }    @Override    public void endElement(String uri, String localName, String qName) throws SAXException {        super.endElement(uri, localName, qName);        if (qName.equals("student")){            System.out.println(qName+"遍历结束");            System.out.println("============结束遍历student=============");        }    }    @Override    public void characters(char[] ch, int start, int length) throws SAXException {        super.characters(ch, start, length);        String value = new String(ch,start,length).trim();        if (!value.equals("")) {            System.out.println(value);        }    }}

结果截图

Java解析XML的方式有哪些

3.JDOM方式

<!--jdom --><dependency>    <groupId>org.jdom</groupId>    <artifactId>jdom</artifactId>    <version>1.1.3</version></dependency>
package com.cxx.xml;import org.jdom.Attribute;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.util.List;public class JDomDemo {    public static void main(String[] args) throws Exception {        //1.创建SAXBuilder对象        SAXBuilder saxBuilder = new SAXBuilder();        //2.创建输入流        InputStream is = new FileInputStream(new File("src/main/resources/demo.xml"));        //3.将输入流加载到build中        Document document = saxBuilder.build(is);        //4.获取根节点        Element rootElement = document.getRootElement();        //5.获取子节点        List<Element> children = rootElement.getChildren();        for (Element child : children) {            System.out.println("通过rollno获取属性值:"+child.getAttribute("rollno"));            List<Attribute> attributes = child.getAttributes();            //打印属性            for (Attribute attr : attributes) {                System.out.println(attr.getName()+":"+attr.getValue());            }            List<Element> childrenList = child.getChildren();            System.out.println("======获取子节点-start======");            for (Element o : childrenList) {                System.out.println("节点名:"+o.getName()+"---"+"节点值:"+o.getValue());            }            System.out.println("======获取子节点-end======");        }    }}

结果截图

Java解析XML的方式有哪些

4.DOM4J方式

 <!-- dom4j --> <dependency>     <groupId>dom4j</groupId>     <artifactId>dom4j</artifactId>     <version>1.6.1</version></dependency>
package com.cxx.xml;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.io.File;import java.util.Iterator;import java.util.List;public class Dom4JDemo {    public static void main(String[] args) throws Exception {        //1.创建Reader对象        SAXReader reader = new SAXReader();        //2.加载xml        Document document = reader.read(new File("src/main/resources/demo.xml"));        //3.获取根节点        Element rootElement = document.getRootElement();        Iterator iterator = rootElement.elementIterator();        while (iterator.hasNext()){            Element stu = (Element) iterator.next();            List<Attribute> attributes = stu.attributes();            System.out.println("======获取属性值======");            for (Attribute attribute : attributes) {                System.out.println(attribute.getValue());            }            System.out.println("======遍历子节点======");            Iterator iterator1 = stu.elementIterator();            while (iterator1.hasNext()){                Element stuChild = (Element) iterator1.next();                System.out.println("节点名:"+stuChild.getName()+"---节点值:"+stuChild.getStringValue());            }        }    }}

Java解析XML的方式有哪些

总结

Java解析XML的方式有哪些

Java解析XML的方式有哪些

Java解析XML的方式有哪些

关于“Java解析XML的方式有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Java解析XML的方式有哪些

本文链接: https://lsjlt.com/news/302196.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java解析XML的方式有哪些
    这篇文章将为大家详细讲解有关Java解析XML的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。xml文件<xml version="1.0" enc...
    99+
    2023-06-22
  • Java XML文件解析的方法有哪些
    Java中有多种方法可以解析XML文件,其中常用的有以下几种:1. DOM解析器:使用DOM解析器可以将整个XML文档加载到内存中,...
    99+
    2023-09-14
    java
  • java解析xml文件的方式有哪几种
    在Java中,解析XML文件的方式有以下几种: 使用DOM解析器:DOM(Document Object Model)解析器将整...
    99+
    2024-02-29
    java
  • java生成xml的方式有哪些
    在Java中生成XML文件的常用方式包括: 使用DOM (Document Object Model):使用Java的DOM A...
    99+
    2024-03-07
    java
  • C# XML解析方法有哪些
    这篇文章主要介绍“C# XML解析方法有哪些”,在日常操作中,相信很多人在C# XML解析方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C# XML解析方法有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • Java解析XML的四种方式
    xml文件 <?xml version="1.0" encoding="utf-8" ?> <class> <studen...
    99+
    2024-04-02
  • Android开发中解析xml的方法有哪些
    这篇文章给大家介绍Android开发中解析xml的方法有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。第一步:新建一个Android工程,命名为XmlDemo第二步:修改main.xml布局文件,代码如下:<...
    99+
    2023-05-31
    android xml roi
  • android解析方式有哪些
    在Android中,有以下几种常见的解析方式:1. JSON解析:可以使用Android提供的JSON库(如JSONObject和J...
    99+
    2023-08-14
    android
  • Android项目中解析XML文件的方法有哪些
    今天就跟大家聊聊有关Android项目中解析XML文件的方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。xml文件代码<&#63;xml version=&qu...
    99+
    2023-05-31
    android xml roi
  • Java解析XML(4种方式)案例详解
    目录1.DOM方式2.SAX方式3.JDOM方式4.DOM4J方式总结 xml文件 <?xml version="1.0" encoding="utf-8" ...
    99+
    2024-04-02
  • Java解析XML(4种方式)案例详解
    在Java中,有多种方式可以解析XML文件。下面是四种常用的方式:1. DOM(Document Object Model)方式:D...
    99+
    2023-08-11
    java
  • java读取xml文件的方法有哪些
    Java读取XML文件的方法有以下几种:1. 使用DOM解析器:DOM解析器将整个XML文档加载到内存中,形成一个树形的DOM对象,...
    99+
    2023-09-27
    java
  • Java Log的方式有哪些
    Java中记录日志的方式有以下几种:1. 使用System.out.println():这是最简单的一种方式,直接将日志输出到控制台。```javaSystem.out.println("This is a log message");...
    99+
    2023-08-11
    Java
  • 常用的xml在线解析工具有哪些
    常用的XML在线解析工具包括:1. XML解析器(https://www.xml-parser.com/):提供了实时的XML解析和...
    99+
    2023-09-21
    xml
  • java重构的方式有哪些
    在Java中,有许多可以用于重构代码的方式。以下是一些常见的重构方式:1. 提取方法(Extract Method):将一部分代码提...
    99+
    2023-09-01
    java
  • java加锁的方式有哪些
    在Java中,有以下几种加锁的方式:1. synchronized关键字:使用synchronized关键字来修饰方法或代码块,实现...
    99+
    2023-08-16
    java
  • java代理的方式有哪些
    Java代理有以下几种方式: 静态代理:在代理类中直接引用被代理类的对象,通过代理类对被代理类的方法进行调用和控制。 动态代...
    99+
    2024-03-07
    java
  • C# XML的操作方法有哪些
    C#中可以使用以下方法来操作XML:1. XmlDocument类:该类提供了一系列的方法用于加载、创建、修改和保存XML文档。常见...
    99+
    2023-09-12
    C#
  • java转码方式有哪些
    java中的转码方式有:一、中文转码,使用UTF-8编码,使用字符串变量;二、字符转码,使用指定字符集,使用系统默认字符集;java中的转码方式有以下几种一、中文转码1)使用UTF-8编码进行转码request.setCharacterEn...
    99+
    2024-04-02
  • java通讯方式有哪些
    java的通讯方式有:1.RMI,可以在客户端中调用java虚拟机对象;2.Burlap,基于XML格式传输;3.JMS,java消息服务应用程序接口;4.AMQP,提供统一消息服务的应用层消息队列协议;java的通讯方式有以下几种RMIR...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作