java解析xml文件

这篇具有很好参考价值的文章主要介绍了java解析xml文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Dom解析xml

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 * @ClassName Xml
 * @Description :使用DOM进行解析XML
 */

public class Xml {
    public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
        //DocumentBuilder类的构造函数是受保护的,不能直接实例化
        //使用静态工厂方法来进行创建建符合标准的DocumentBuilder实例
        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse(new File("E:\\code\\Java\\01_java基础\\src\\test.xml"));
        // 获取XML文档的根元素
        Element rootElement = document.getDocumentElement();
        // 打印根元素的标签名
        System.out.println("Root element: " + rootElement.getNodeName());
        NodeList childNodes = rootElement.getChildNodes();
        for (int i = 0; i < childNodes.getLength(); i++) {
            //获取元素,此包含了文本元素以及节点元素
            Node node = childNodes.item(i);
            System.out.println(node);
            if (node.getNodeType() ==Node.ELEMENT_NODE){
                Element element = (Element) node;
//                打印元素节点的标签名和文本内容
                System.out.println("下面开始了-----------");
                System.out.println("Element"+element.getNodeName());
                System.out.println("content"+element.getTextContent());

            }

        }


    }
}

2.SAX解析

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;

public class Main {
    public static void main(String[] args) {
        try {
            // 创建 SAXParserFactory 实例
            SAXParserFactory factory = SAXParserFactory.newInstance();
            
            // 创建 SAXParser 实例
            SAXParser parser = factory.newSAXParser();
            
            // 创建 MyContentHandler 实例
            MyContentHandler contentHandler = new MyContentHandler();
            
            // 解析 XML 文档
            String xml = "<root><element attr=\"value\">Text</element></root>";
            parser.parse(new InputSource(new StringReader(xml)), contentHandler);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MyContentHandler extends DefaultHandler {
    
    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        // 处理元素开始标签事件
        System.out.println("Start Element: " + qName);
        
        // 如果有属性,处理属性
        if (attributes.getLength() > 0) {
            System.out.println("Attributes:");
            for (int i = 0; i < attributes.getLength(); i++) {
                System.out.println(attributes.getQName(i) + "=" + attributes.getValue(i));
            }
        }
    }
    
    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {
        // 处理元素结束标签事件
        System.out.println("End Element: " + qName);
    }
    
    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
        // 处理文本节点事件
        String text = new String(ch, start, length).trim();
        if (!text.isEmpty()) {
            System.out.println("Text: " + text);
        }
    }
}

MyContentHandler类继承自DefaultHandler,是一个自定义的内容处理器。在该类中重写了startElement()、endElement()和characters()方法,以处理XML解析的不同事件。文章来源地址https://www.toymoban.com/news/detail-534553.html

到了这里,关于java解析xml文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【已解决】无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

    解决时间:2023/3/31,我使用的tomcat是8.5版本的,在整合SSM项目时在jsp中使用JSTL的核心标签库 - core,也就是使用 c:forEach 标签遍历出现了这个问题: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri 不知道该怎么说明这个bug,因为我已经在网上试过很多方法了。 比如

    2024年02月07日
    浏览(74)
  • 【JAVA】XML及其解析技术、XML检索技术、设计模式

    XML(Extensible Markup Language)是可扩展标记语言的缩写,它是一种数据表示格式,可以描述复杂的数据结构,常用于传输和存储数据 作用: 用于进行存储数据和传输数据 作为软件的配置文件 第一行是文档声明 ? xml version =\\\"1.0\\\" encoding =\\\"UTF-8\\\" ? version:XML默认的版本号码、该属性是必

    2024年02月11日
    浏览(44)
  • Java实现接收xml格式数据并解析,返回xml格式数据

    需求描述:后端接受xml格式数据,解析出相应数据,并返回xml格式数据。

    2024年02月10日
    浏览(42)
  • JAVA生成xml文件

    自动生成xml文件,使用到的jar包为dom4j 三、结果展示

    2024年02月13日
    浏览(47)
  • Java读取XML文件

    XML声明是XML文档的第一句,其格式如下 良好的XML文档必须只有一个根元素,就是紧接这声明后面接着的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。 在XML文档中,大小写是有区别的。\\\"A\\\"和\\\"a\\\"是不同的标记。 所有标记必须成对出现

    2024年02月08日
    浏览(57)
  • Java读取XML文本文件

    圆周率没有尽头,风景一直在路上 编写测试的xml文本文件 编码读取(可根据自己需求改写读取节点)

    2024年02月16日
    浏览(72)
  • java web.xml配置文件漏洞

    一.介绍 介绍 二.实例 实例1

    2024年02月14日
    浏览(44)
  • 【Java】Maven配置文件帮助文档(settings.xml 和 pom.xml)

    以下几个属性是 settings 属性的下一级属性: localRepository interactiveMode offline pluginGroups proxies servers mirrors profiles activeProfiles localRepository:本地仓库的路径,默认值为 ${user.home}/.m2/repository interactiveMode:表示Maven是否需要和用户交互以获得输入 offline:表示Maven是否需要在离线模式

    2024年02月13日
    浏览(55)
  • java语法(二)线程并发、Juit单元测试、反射机制、注解、动态代理、XML解析、JVM

    正则表达式验证网站 1、 ? :表示前边这个字符可以出现0次或者1次。例如下边 /used? 既可以匹配 use 也可以匹配 used 。 2、 * :匹配0个或者多个字符, * 号代表前边这个字符可以出现0次或者多次。例如 /ab*c 可以匹配 ac、abc、abbbbc 3、 + :与 * 号不同的是, + 需要前面这个字符

    2024年02月06日
    浏览(53)
  • [Java学习日记]日志、类加载器、XML、DTD与schema、XML解析、XPath、单元测试、Assert、BeforeAfter、注解、自定义注解、注解案例

    下面的案例中只是做一个简单的了解,不做深入理解啦 目录 一.使用Logback写日志 二.类加载器 三.XML 四.XML编写规定:DTD与schema 五.XML解析 六.XPath 七.单元测试 七.Assert(断言):检验方法结果 八.使用before与after注解备份与还原数据 九.注解 十.自定义注解 十一.注解案例:用注

    2024年02月04日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包