XML简介及操作

目录

1.XML简介

2.XML解析-DOM4J


1.XML简介

  • XML(EXtensible Markup Language),可扩展标记语言
  • 特点:
    • XML与操作系统、编程语言的开发平台无关
    • 实现不同系统之间的数据交换
  • 作用:
    • 数据交换
    • 配置应用程序和网站
    • Ajax基石

HTML 与 XML 区别:

  • XML 被设计用来传输和存储数据,其焦点是数据的内容。
  • HTML 被设计用来显示数据,其焦点是数据的外观。

XML标签:

XML文档内容由一系列标签元素组成

<元素名 属性名=“属性值”>元素内容</元素名>

  • 属性值用双引号包裹
  • 一个元素可以有多个属性
  • 属性值中不能直接包含<&
  • 不建议使用的字符:‘、>

XML编写注意事项:

  • 所有XML元素都必须有结束标签
  • XML标签对大小写敏感
  • XML必须正确的嵌套
  • 同级标签以缩进对齐
  • 元素名称可以包含字母、数字或其他的字符
  • 元素名称不能以数字或者标点符号开始
  • 元素名称中不能包含空格

示例:

编写XML文档如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<PhoneInfo>
	<Brand id="0" name="华为">
		<Type>HUAWEI P20</Type>
		<Type1>HUAWEI P30</Type1>
		<Type2>HUAWEI P40</Type2>

	</Brand>
	<Brand id="1" name="苹果">
		<Type>iPhone14 ProMax 1TB</Type>

	</Brand>
	<Brand id="2" name="xiaomi">
		<Type>Redmi K40</Type>
	</Brand>
</PhoneInfo>

2.XML解析-DOM4J

XML解析:获取元素里面的字符数据或属性数据。

Dom4j:

        非常优秀的Java XML API,性能优异,功能强大,开放源代码

Dom4j的基本用法

使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档的根元素,就可以针对性的进行解析操作了。

操作解析
SAXReader()读取xml文件
getRootElement()获取xml根节点
elements()获取当前节点下的所有子节点
elements(“xxx”)获取指定元素下的所有子节点
element(“xxx”)获取指定元素下的子元素对象
setText()设置元素文本内容
getText()获取当前节点文本内容
elementText(“xxx”)

根据指定子元素名,获取元素中的文本

attributeValue(“属性名”)

获取当前节点属性
对象.addElement("节点名")创建节点 Element 
对象.addAttribute("节点属性名","属性值")节点添加,修改属性
DocumentHelper.creatDocument()创建 Document 对象
OutputFormat.createPrettyPrint()设置XML编码
XMLWriter xmlWriter=new XMLWriter(new FileWriter("cs.xml"),outputFormat)写入xml文件

读取xml文件 SAXReader()

//将xml文件加载到内存中 XML解析器

SAXReader saxReader = new SAXReader();

//document 加载执行xml文档获取Document对象

Document document = saxReader.read(XML路径);

获取XML根节点getRootElement()

Element rootElement = document.getRootElement();

获取当前节点下所有子节点 elements()

//获取根节点下所有子节点

List<Element> Elist = rootElement.elements();

根据指定子元素名,获取元素下所有子节点

//获取节点名称为books下所有子节点
List<Element> Elist = rootElement.elements(“books”);

根据指定子元素名,获取子元素对象,如果重复,则获取第一个

//获取节点名称为books下单个子几点
Element element= rootElement.element(“books”);

设置元素文本内容 setText()

newelement.setText("内容");

获取当前节点文本内容 getText()

elenent.getText()

根据指定子元素名,获取元素中的文本

elenent.elementText(“book”)

获取当前节点属性 attributeValue(“属性名”)

elenent.attributeValue("name")

创建节点Element对象.addElement("节点名")

Element newelement = rootElement.addElement("span");

节点添加,修改属性Element对象.addAttribute("节点属性名",“属性值”)

newelement.addAttribute("type","属性值");

新XML添加Documen对象

通过DocumentHelper.creatDocument()创建一个Document对象

Document read = DocumentHelper.createDocument();

设置XML编码

通过OutputFormat的静态方法createPrettyPrint()创建OutputFormat对象,并设置编码集

OutputFormat outputFormat=OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");

写入XML文件

//写入XML文件的位置 以及指定的格式

XMLWriter xmlWriter=new XMLWriter(new FileWriter("cs.xml"),outputFormat);

//开始写入XML文件   写入Document对象

xmlWriter.write(document);

xmlWriter.close();

posted @   愚人钊啊  阅读(28)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示