在Java中有哪些解析XML的方法?

第54节:vue3+cesiumjs 对之前的vue2+cesiumjs 进行了升级 阅读详情

我在模拟tomcat的过程中需要解析xml,所以在此总结下常用的sax/dom,Dom4j,jsoup等。

其实sax/dom使用有点复杂,建议使用DOM4j等技术。
这里sax和dom还有Dom4j借鉴于:https://blog.youkuaiyun.com/m0_37499059/article/details/80505567

先看xml

demo.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" e="ee" class="12er">
        <firstname id="12" class="12er">cxx3</firstname>
        <lastname>Bob3</lastname>
        <nickname>stars3</nickname>
        <marks>85</marks>
    </student>
</class>

SAX

package com.yuer.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;

/**
 * 使用SAX解析xml
 * 优点和缺点:
 * 		SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。
 * 		而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点
 * 		
 * 	
 * 		缺点:不能修改文件,且不支持文件的随意读取
 * 		
 * 
 * @author Yuer
 *
 */
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);
		}
	}
}
运行结果

在这里插入图片描述

DOM

package com.yuer.xml;


import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
/**
 * 使用DOM方式解析xml
 * 优点和缺点:
 * 		核心是按树形结构处理数据,dom解析器读入xml文件并在内存中建立一个结构一模一样的“树”,
 * 		这树各节点和xml各标记对应,通过操纵此“树”来处理xml中的文件。xml文件很大时,建立的“树”也会大,所以会大量占用内存。
 * 		所以优点很容易总结出来:支持随机读取,且能读和写。
 * 		缺点:读取大文件时很耗费内存。
 * @author Yuer
 *
 */
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();
        }
    }
}
运行结果

在这里插入图片描述

Dom4j

package com.yuer.xml;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * Dom4j方式解析xml
 * 
 * Dom4j是基于底层api的更高级封装。
 * dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),
 * 它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理
 * @author Yuer
 *
 */
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());
            }
        }
    }
}
运行结果

在这里插入图片描述

jsoup

这个主要是用来解析html,相比于其他方式,jsoup简单很多了,也是基于文档树的,里面提供了很多方法用于处理html,xml当然也可以处理,且很容易理解。也可以用于爬虫。

package com.yuer.xml;

import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * jsoup主要用来解析HTML,但是也可用于解析xml主要是很简便 也可用于爬虫
 * 
 * @author Yuer
 *
 */
public class TestJsoup {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		
		parseXml();
	}

	public static void parseXml() throws IOException {
	// 将xml中的数据弄到StringBuffer中
//		int i = 0;
//		StringBuffer buff = new StringBuffer();
//		FileInputStream fis = new FileInputStream(new File("src/main/resources/demo.xml"));
//
//		while ((i = fis.read()) != -1) {
//			buff.append((char) i);
//		}

		// 获取Document的方式有三种,第一种字符串,第二种文件(先封装为File,还可以指定编码格式如utf-8),第三种网址(需要先封装为URL)
//		Document doc = Jsoup.parse(buff.toString());
		Document doc = Jsoup.parse(new File("src/main/resources/demo.xml"),"utf-8");

//		System.out.println(doc); // 这个会将整个xml打印和直接打印buff的效果一致

		// 获取Elements的方式有很多种:根据id,class,tag,属性(好像是看是否存在这个属性)都可
		Elements as = doc.getElementsByTag("firstname");
		for (Element e : as) {
			// 标签的文本值
			System.out.println(e.text());

		}
		as = doc.getElementsByTag("student");
		for (Element e : as) {
			// 标签的对应属性的值 这里是rollno属性的值
			System.out.println(e.attr("rollno"));

			// 获取该标签的所有值 打印的值类似于这种格式:rollno="593" e="ee"
			System.out.println(e.attributes());

			// 还有一些在html中常用的获取id等等不写了这里主要展示分析xml的方法
			// 还有如jquery的选择器的这里省略,在爬虫那里仔细介绍

		}

		// jsoup和DOM都类似,都采用的建立文档树,可以接受增删改属性,这里好像失效了
		// 这里对元素的修改好像确实修改了,但是没有同步到xml中
		Element e = doc.getElementsByTag("firstname").last();

		System.out.println(doc);
		// 这个可以修改一个Element,也可以直接修改多个如Elements,但是不知道为什么这里失效了
//		e.attr("class", "class1");
		// 增加移除属性 这里好像只支持class
		// 修改文本值 不传值即是获取,传值即是修改
		e.text(" Hello JSoup");
		System.out.println(doc);

//		e.appendText(" Hello JSoup");
	}

	

}

运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不过这里对于xml的修改好像没成功,不过对于xml生成的Document确实修改了,待解决。。。

PCIe(Peripheral Component Interconnect Express)的带宽和速率 PCIe带宽与速率解析 PCIe的速率指物理层传输速度(GT/s),而带宽是实际有效数据吞吐量(GB/s)。不同PCIe版本采用不同编码方式: PCIe 1.0-2.0:8b/10b编码(80%效率) PCIe 3.0+:128b/130b编码(≈98.5%效率) 单向峰值带宽速查(单位:GB/s): 版本 x1 x4 x8 x16 PCIe3 0.98 3.94 7.88 15.75 PCIe4 1.97 7.88 15.75 31.51 PCIe5 3.94 15.75 31.51 63.02 PCIe 阅读详情

相关推荐

VTK四视图联动避坑指南:解决vtkImagePlaneWidget窗宽窗位同步与切片序号更新的那些坑

本文详细解析了VTK四视图联动开发中的关键技术点与常见问题,包括切片位置同步、窗宽窗位同步的实现原理及回调机制设计。针对开发中遇到的回调事件不触发、渲染性能低下等问题,提供了实用的解决方案和优化技巧,帮助开发者高效构建医学影像和科学可视化应用。

weixin_42638178的博客 392

详解Java解析XML的四种方法

Java解析XML的四种方法:1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

qq_50896685的博客 1万+

道岔故障监测系统设计(源码+开题)

通过实时监控道岔的工作状态,系统能够及时发现异常情况,预防潜在的安全隐患,从而减少事故发生的概率。此外,监测系统还能够为维护人员提供详细的数据支持,帮助他们更准确地判断道岔的磨损程度和故障类型,优化维修计划,延长道岔的使用寿命。随着智能化、自动化技术的发展,道岔故障监测系统的设计与应用也将推动铁路行业的技术进步,为实现智能铁路和未来交通系统的构建奠定基础。因此,开展道岔故障监测系统的设计研究,不仅具有重要的工程实践价值,也有助于推动铁路运输行业向更高水平的发展。

灵军程序设计 771

Java中解析XML文件

0617

weixin_52071901的博客 5186

学习 Bootstrap 5 之 Tables

学习 Bootstrap 5 之 表格表格 (Tables)1. 创建表格(1). 使用原生的表格标签(2). 使用Bootstrap 5 的提供的表格标签类(3). 原生与Bootstrap创建出来的表格的对比2. 表格样式(1). 表格样式的效果(2). 表格样式的使用1). 用于 <table> 标签2). 用于 <thead> <tbody> <tfoot> 标签 表格 (Tables) 1. 创建表格 (1). 使用原生的表格标签 <tabl

qq_37354060的博客 2130

[SWPUCTF 2018]SimplePHP--一道简单的Phar反序列化题目

题目就不贴了,直接给出利用链①:echo会触发__toString魔术方法,所以这里的$this->test应该是Show类实例化的对象show②:这里应该使$this->str['str']为Test类实例化后的对象test,然后test->source会触发__get魔术方法(因为Test类没有名为source的成员变量,所以会触发get魔术方法,并且$key=source)③④:调用get方法,$...

Dream' 1260

java解析xml文件的四种方式

System.out.println("======================结束遍历第" + (i + 1) + "本书的内容=================");System.out.println("=================下面开始遍历第" + (i + 1) + "本书的内容=================");System.out.println("======================开始遍历某一本书的内容=================");

黑色人生 4024

从ESP/ABS选型看轮速传感器:为什么你的车用了AK+PWM+7/14mA三种协议?

本文深入解析了汽车轮速传感器的三种主流协议(7/14mA电流型、PWM型和AK协议型)及其混合应用场景。通过对比不同协议的技术特点、成本效益和工程挑战,揭示了现代车辆采用多种传感器协议背后的设计逻辑,包括成本控制、性能平衡和冗余设计等关键因素。

weixin_29266679的博客 534

Java中XML的解析

​ 当将数据存储在XML后,我们就希望通过程序获取XML的内容。如果我们使用Java基础所学的IO知识是可以完成的,不过你学要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只读、读写)。人们为不同问题提供不同的解析方式,使用不同的解析器进行解析,方便开发人员操作XML。XML DOM 和 HTML DOM一样,XML DOM 将整个XML文档加载到内存,生成一个DOM树,并获得一个Document对象,通过Document对象就可以对DOM进行操作。以下面books.xml文档为例。

SHI940637335的博客 7099

基于微信小程序的智能门禁管理系统的设计与实现(文章+源码)

基于微信小程序门禁管理小程序,该系统支持用户注册登录、查阅新闻动态、提交开门申请和发布留言等功能,同时管理员可以进行用户管理、新闻信息管理、门禁审批管理和留言管理等操作。该系统将采用IDEA开发工具、SSM框架和MYSQL数据库等相关技术,实现用户登录注册、个人信息管理、门禁申请提交、管理员审核等功能。该系统的实现,可以有效提高门禁管理的效率和便利性,同时也具有较强的可扩展性和可维护性。本研究对于智能门禁管理系统的设计和实现具有一定的参考价值。

u011779145的博客 1401

配置VScode编译、调试STM32(一)手动配置makefile和debug

做嵌入式的朋友们都应该有过想要有个功能强大的IDE或者编辑器,Keil MDK5、IAR EWARM是用的比较普遍的平台了,但是两者在编辑器方面都比较弱势,当然可以设置 或者使用外部编辑器,像Sourceinsight、notePad++这样,但毕竟需要切换回来进行Build、Debug,非常麻烦。 VScode从发布至今口碑一直很好,而且里面有非常多的插件,比如彩虹括号、Code Runner、...

hanhe0551的博客 4290

《Java高级-Xml:解析XML 4种方法总结》

Java中用于解析XML的技术很多,主流的有DOM、SAX、JDOM、DOM4j,下文主要介绍这4种解析XML文档技术的使用。<RESULT><VALUE><ADDR>河南省郑州市</ADDR></VALUE><VALUE><ADDR>河南省郑州市二七区</ADDR></VALUE></RESULT>DOM,SAX,JDOM,DOM4J四种方法对比总结1. DOM是基于树的结构,通常需要加载整文档和构造DOM树,然后才能开始工作。a、由于整棵树在内存中,因此可以对xml文档随机访问。

大大大钢琴 1533

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

Java解析XML的四种方法详解

Java解析XML的四种方法详解 XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法 XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM

万里晴空 15万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

论Java加载和解析XML文件的两种方法

对于Java来说,加载和解析XML文件有两种方法: 一种:通过加载整个XML文件生成Document文档,然后解析Document文档内容的树和根。 另一种:利用SAX封装类来逐步解析。 这两种方法各有优点和缺点:第一种由于需要加载整个XML文件生成Document,在解析,所以假如XML文件内容过多、过大,就会造成加载延迟,缓慢(所以此方法只适用于XML文件比较小点 的XML文件);而第二

illusion_Luna的专栏 6562

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java中解析XML的方法

XML 简单介绍在介绍Java中解析 XML 的方法之前前先来介绍下 XML,在我之前学习 HTML 的时候,就听当时的老师介绍过 XML ,它和 HTML 一样是一种标记语言,不同的是它的语法更加灵活,HTML 中的标签是预定义的,而 XML 中的标签则由创建者自己定义,并且每个 XML 标签都是成对出现的 ,通常需要在文件的首行写上 XML 的一个文档头作为开始 其中可以包括版本,编码方式… X

Tennyson的博客 360

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【JAVA基础】-JAVA开发中XML解析多种方法

读取并解析XML有上面4种方案,根据不同的应用场合,使用恰当的方法。DOM解析:一次性把XML文档内容加载到内存,构建Document对象。不适合读取大容量的xml文件;Dom解析可以随意读取,甚至往回读取;Dom解析可以实现增删改查;常用解析工具:Dom4jSAX解析:读取一点,解析一点。适合读取大容量的xml文件;从上往下逐点读取,不能往回读;SAX解析通常只读取文件,不能对文件进行操作;

记录总结工作过往 4633

java解析xml方法_解Java解析XML的四种方法是什么呢?

编辑特别推荐:Java加载和实例化以及构造函数关于计算Java程序运行时间Java中执行顺序XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),...

weixin_32516009的博客 108

java 解析 xml集合_java解析xml的4种经典方法

1、示例XML为hello.xml,如下:天龙八部金庸201488鹿鼎记201566中文射雕英雄传金庸201644一、DOM(Document Object Model)解析优点:1)允许应用程序对数据和结构做出更改。2)访问是双向的,可以在任何时候再树中上、下导航获取、操作任意部分的数据。缺点:解析XML文档的需要加载整个文档来构造层次结构,消耗内存资源大。应用范围:遍历能力强,常应用于XML文...

weixin_36212959的博客 884

java 解析 xml_转 详解Java解析XML的四种方法

前言:在设计的时候,要常用XML文件的特性,提交程序可扩展(固定参数写在XML文件)、封装(通用类、方法调用的封装)、缓存(极少变动,但逻辑有极其复杂数据分析)等特性。XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来...

weixin_39839541的博客 188

java解析xml的4种经典方法

java解析xml的4种经典方法 https://www.jianshu.com/p/9b3835299b99 2……比较1)DOM4J性能最好,连Sun的JAXM也在用DOM4J.目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J.2)JDOM和DOM在性能测试时...

weixin_30326515的博客 305

xml解析list java_详解Java解析XML的四种方法

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definit...

weixin_31129821的博客 1195

Java解析XML的几种方法

Java解析XML有几种方法,本文就讨论是怎么使用这四种方法来解析XML文件,并分析他们的优缺点以及应用场合。1. DOM(Document Object Model)优点: 1. 允许应用程序对数据和结构做出更改。 2. 访问是双向的,可以在任何时候再树中上、下导航获取、操作任意部分的数据。 缺点: 1. 解析XML文档的需要加载整个文档来构造层次结

摸着石头过河 1万+

Java解析xml文件的方法

什么是 XML? XML指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准XML 与 HTML 的主要差异XML 不是 HTML 的替代。 XML 和 HTML 为不同的目的而

mcgwinds的博客 425

java xml解析方法_Java之XML解析的两种方法介绍

Java XML Parsing解析XML有两种(不限于)方法: 一种是基于DOM(Document Object Model)的解析,一种是基于事件(event-based)的SAX(Sample API for XML)解析。DOM-Tree model parser(Object based) (Tree of nodes).-DOM 加载所有XML到内存,然后解析。因此具有内存限制。-DO...

weixin_39701834的博客 88

java解析xml原理方法对比示例,XML基础

XML是什么   可扩展的标记语言   XML能干什么   描述数据、存储数据、传输(交换)数据。 XML有什么 元素属性实体PCDATA :被解析的字符数据(parsed character data),PDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记CDATA :字符数据(character data),CDATA 是不会被解析器解析的文本   XML与

蓝色雨的博客 8156
上一篇: 怎样解决Java compiler level does not match the version of the installed Java project facet.
下一篇: Java读常用配置文件properties的方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值