Skip to content

Commit f4adfec

Browse files
committed
修改xml中部分代码
修改xml中部分代码
1 parent 707d699 commit f4adfec

File tree

1 file changed

+109
-18
lines changed

1 file changed

+109
-18
lines changed

java核心API编程/XML技术.md

Lines changed: 109 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,91 @@
1-
## 一、XML简介
1+
[TOC]
2+
3+
4+
5+
# 一、XML简介
6+
27
1、XML是可扩展标记语言
38
2、与操作系统和操作平台均无关
49
3、规范统一,支持异构系统
510
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181101180436240.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMDc0,size_16,color_FFFFFF,t_70)
6-
## 二、XML文档结构
11+
12+
# 二、XML文档结构
713
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181101180551962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMDc0,size_16,color_FFFFFF,t_70)
814

9-
1、XML声明
15+
## 1、XML声明
16+
1017
<?xml version="1.0" encoding="UTF-8" ?>
1118
<font color=red>
1219
注意:这里需要修改的encoding,如果出现乱码,需要改成GBK
1320
<font/>
1421

15-
2、标签
22+
## 2、标签
23+
1624
元素名 元素属性名=“属性值” 元素内容
1725
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018110118223759.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMDc0,size_16,color_FFFFFF,t_70)
1826

19-
3、根元素
27+
## 3、根元素
28+
2029
写在声明下面的标签元素,有且只有一个根元素
21-
4、属性
30+
31+
## 4、属性
32+
2233
一个元素可以有多个属性,多个属性之间用空格分开
2334
<font color=red size=5>
2435
注意:属性可以加在任何一个元素的其实标签上,但不能加在结束标签上,且不能包含特殊字符< " .&
2536
<font/>
2637

27-
5、特殊字符的处理
38+
## 5、特殊字符的处理
39+
2840
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181101182809133.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMDc0,size_16,color_FFFFFF,t_70)
2941

30-
## 、XML编写注意事项
42+
# 、XML编写注意事项
3143
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181101182921224.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjcwMDc0,size_16,color_FFFFFF,t_70)
3244

33-
## 、XML命名空间
45+
# 、XML命名空间
3446
命名空间是在解析XML文档时,对于重名的元素,可能出现解析冲突,他们用来标识来自特定域(标准组织、公司、行业)的名称
3547
除非带有前缀,否则属性属于他们的元素所在的命名空间
36-
## 、验证XML文档
48+
# 、验证XML文档
3749
DTD验证
38-
## 七、DOM解析XML
39-
1、步骤
50+
# 六、DOM解析XML
51+
## 1、步骤
52+
4053
<font color=Gold size=4>
41-
(1)创建解析器工厂
54+
55+
### (1)创建解析器工厂
4256

4357
```java
4458
DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
4559
```
4660
<font/>
4761

4862
<font color=Gold size=4>
49-
(2)创建解析器
63+
64+
### (2)创建解析器
5065

5166
```java
5267
DocumentBuilder builder =factory.newDocumentBuilder();
5368
```
5469
<font/>
5570

5671
<font color=Gold size=4>
57-
(3)获得Document
72+
73+
### (3)获得Document
5874

5975
```java
6076
document=builder.parse("src/info.xml");
6177
```
6278
<font/>
6379

6480
<font color=Gold size=4>
65-
(4)创建解析器工厂
81+
82+
### (4)创建解析器工厂
6683

6784
<font/>
6885

6986
以Document对象为起点对DOM树的节点进行增加、删除、修改查询等操作
7087

71-
2、关键代码(包含增删该查操作)
88+
## 2、关键代码(包含增删该查操作)
7289

7390
```java
7491
package demo1;
@@ -210,7 +227,8 @@ public class Test1 {
210227
}
211228

212229
```
213-
3、注意区别这几个关键词
230+
## 3、注意区别这几个关键词
231+
214232
<font color=red size=5>
215233
Document:
216234
<font/>
@@ -237,4 +255,77 @@ item
237255

238256
从NodeList中获得Node,要通过循环遍历
239257

258+
# 七、dom4j
259+
260+
## 1、方法:
261+
262+
百度dom4j,看官方帮助文档,里面会有一系列的方法。
263+
264+
![1541405704330](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1541405704330.png)
265+
266+
## 2、显示xml信息
267+
268+
```java
269+
public class Test1 {
270+
public static void main(String[] args) throws Exception {
271+
//获取domcument对象
272+
SAXReader reader = new SAXReader();
273+
Document doc =reader.read("src//info.xml");
274+
275+
//获取根元素
276+
Element root =doc.getRootElement();
277+
278+
//循环遍历输出子节点
279+
Iterator<Element> it=root.elementIterator();
280+
while(it.hasNext()) {
281+
Element brandEle = it.next();
282+
String strBrand=brandEle.attributeValue("name");
283+
Iterator<Element> it2=brandEle.elementIterator();
284+
while(it2.hasNext()){
285+
Element typeEle=it2.next();
286+
String strType=typeEle.attributeValue("name");
287+
System.out.println("品牌:"+strBrand+"\t"+"型号:"+strType);
288+
}
289+
}
290+
}
291+
292+
}
293+
```
294+
295+
## 3、保存xml文件
296+
297+
```java
298+
//保存
299+
OutputFormat format =OutputFormat.createPrettyPrint();
300+
XMLWriter writer = new XMLWriter(new FileWriter("src//info.xml"),format);
301+
writer.write( doc );
302+
writer.close();
303+
```
304+
305+
## 4、添加信息
306+
307+
```java
308+
//添加
309+
Element eleBrand = root.addElement("Brand");
310+
eleBrand.addAttribute("name", "小米");
311+
eleBrand.addText("这是小米手机");
312+
```
313+
314+
## 5、修改&删除
315+
316+
```java
317+
// 修改
318+
Iterator<Element> it = root.elementIterator();
319+
while (it.hasNext()) {
320+
Element brandEle = it.next();
321+
Attribute att = brandEle.attribute("name");
322+
if (att.getValue().equals("三星")) {
323+
//修改
324+
// att.setValue("sanxing");
325+
//删除属性对象(包括属性名和属性值)
326+
// brandEle.remove(att);
327+
//删除整个brand三星
328+
brandEle.getParent().remove(brandEle);
329+
}
330+
```
240331

0 commit comments

Comments
 (0)