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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人钊呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值