当前位置: 首页 > article >正文

特殊文件:XML文件

一、概述

XML( 全称EXtensible Markup Language, 可扩展标记语言 )

本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系。

1.XML的特点 XML中的“<标签名>” 称为一个标签或一个元素,一般是成对出现的。

2.XML中的标签名可以自己定义(可扩展),但必须要正确的嵌套。

3.XML中只能有一个根标签。

4.XML中的标签可以有属性。

5.如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml。

 

XML的创建 就是创建一个XML类型的文件,要求文件的后缀必须使用xml,如hello_world.xml

 

XML文件的后缀名为:xml,文档声明必须是第一行

<?xml version="1.0" encoding="UTF-8" ?>

version:XML默认的版本号码、该属性是必须存在的 encoding:本XML文件的编码 

XML中书写”<”、“&”等,可能会出现冲突,导致报错,此时可以用如下特殊字符替代。

 XML中可以写一个叫CDATA的数据区: <![CDATA[   …内容…  ]]>,里面的内容可以随便写

应用场景:经常用来做为系统的配置文件;或者作为一种特殊的数据结构,在网络中进行传输。 

二、读取XML文件中的数据 

 DOM4J解析XML文件的思想:文档对象模型

把整个文档看作一个对象

Dom4j解析XML-得到Document对象

SAXReader:Dom4j提供的解析器,可以认为是代表整个Dom4j框架

Document 

Element提供的方法 

 

public static void main(String[] args) throws Exception {// 1、创建一个Dom4J框架提供的解析器对象SAXReader saxReader = new SAXReader();// 2、使用saxReader对象把需要解析的XML文件读成一个Document对象。Document document =saxReader.read("properties-xml-log-app\\src\\helloworld.xml");// 3、从文档对象中解析XML文件的全部数据了Element root = document.getRootElement();System.out.println(root.getName());// 4、获取根元素下的全部一级子元素。// List<Element> elements = root.elements();List<Element> elements = root.elements("user");for (Element element : elements) {System.out.println(element.getName());}// 5、获取当前元素下的某个子元素。Element people = root.element("people");System.out.println(people.getText());// 如果下面有很多子元素user,默认获取第一个。Element user = root.element("user");System.out.println(user.elementText("name"));// 6、获取元素的属性信息呢?System.out.println(user.attributeValue("id"));Attribute id = user.attribute("id");System.out.println(id.getName());System.out.println(id.getValue());List<Attribute> attributes = user.attributes();for (Attribute attribute : attributes) {System.out.println(attribute.getName() + "=" + attribute.getValue());}// 7、如何获取全部的文本内容:获取当前元素下的子元素文本值System.out.println(user.elementText("name"));System.out.println(user.elementText("地址"));System.out.println(user.elementTextTrim("地址")); // 取出文本去除前后空格System.out.println(user.elementText("password"));Element data = user.element("data");System.out.println(data.getText());System.out.println(data.getTextTrim()); // 取出文本去除前后空格}

 目标:如何使用程序把数据写出到 XML文件中去。

 public static void main(String[] args) {// 1、使用一个StringBuilder对象来拼接XML格式的数据。StringBuilder sb = new StringBuilder();sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");sb.append("<book>\r\n");sb.append("\t<name>").append("从入门到跑路").append("</name>\r\n");sb.append("\t<author>").append("dlei").append("</author>\r\n");sb.append("\t<price>").append(999.99).append("</price>\r\n");sb.append("</book>");try (BufferedWriter bw = new BufferedWriter(new FileWriter("properties-xml-log-app/src/book.xml"));){bw.write(sb.toString());} catch (Exception e) {e.printStackTrace();}}

http://www.lryc.cn/news/2420058.html

相关文章:

  • 程序猿Git项目代码自动提交神器-万能shell版
  • 腾讯,百度,高德地图兴趣点(POI)的获取以及查询,逆解析解析
  • git下载安装和常用命令
  • SSH命令大解析,让你的远程连接更高效
  • MySQL 入门:Case 语句很好用
  • Swagger接口文档使用(三种)
  • UTC时间、GMT时间、CST时间
  • HTTP知识点总结,这一篇就够了
  • 一、jQuery概述
  • 【Go】超详细Go入门
  • 【VirtualBox】--- 从零开始搭建 Ubuntu系统 超详细
  • OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • HTML学习笔记(HTML基础篇)
  • 网址中有无 www 区别是什么
  • I tell you 如何下载文件
  • SpringBoot最常用的50个注解(全是干货,干的要死!)
  • Nodejs的详细安装过程与步骤(超详细)
  • 【MobaXterm】--- 登录SSH服务器 持续更新中
  • Nacos 入门教程
  • 再见,Anaconda的安装和配置老大难问题!
  • Pytorch 最全入门介绍,Pytorch入门看这一篇就够了_pytorch csdn
  • 【设计模式】UML建模之包图、组件图和部署图学习笔记
  • IDEA2023使用手册 【持续更新...】
  • Docker-常用命令大全(附命令详解)
  • emplode php|,PHP版单点登陆实现方案
  • 看美国影片必须了解的英文粗语脏话,好不容易整理出来的
  • 酒吧管理系统、酒吧销售系统
  • 3d弹珠小游戏的制作
  • 将Tp-link无线路由器桥接到Dlink无线路由器上
  • Go 语言 tag 的用处?