欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > XML简介

XML简介

2025/4/29 14:59:45 来源:https://blog.csdn.net/m0_62696265/article/details/147571526  浏览:    关键词:XML简介

1. 什么是XML

请先下载附录中的dom4j文件

2. XML格式

3. XML标签

4. XML编写注意事项 



 

5. 转义符⭐

6. 解析XML

7. 常用接口介绍

8. 访问DOM树节点

9. 保存XML文件

10. 范例代码:包含(显示/添加/删除/修改)

        XML文件

<?xml version="1.0" encoding="UTF-8"?>
<scoreInfo><sport name="王贤明" id="1001"><expectScore>预计得分75</expectScore><realScore>实际得分80</realScore></sport><sport name="宋佳" id="1002"><expectScore>预计得分75</expectScore><realScore>实际得分88</realScore></sport>
</scoreInfo>

        应用代码

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;public class dom4jParse {private Document doc;/*** 加载文件转换成dom4j的文档对象*/public void loadDocument() throws DocumentException {//读取xml文件的对象SAXReader saxReader = new SAXReader();//读取文件, 将读取的内容转换成document对象doc = saxReader.read("src/c05/score.xml");}//将添加/删除/修改操作写入XML文件==========================================public void addScoreInfo() throws IOException {//创建xml格式的Output对象OutputFormat outputFormat = new OutputFormat();//创建文件写入的对象FileWriter fileWriter = new FileWriter("src/c05/score.xml");//将文件写入的格式转换为xml格式XMLWriter xmlWriter = new XMLWriter(fileWriter,outputFormat);//写入文件docxmlWriter.write(doc);//关闭流xmlWriter.close();fileWriter.close();}/*** 获取xml文件中存储的数据*/public void show(){//获取根节点Element root = doc.getRootElement();System.out.println("根节点:"+root.getName());System.out.println("=====================================");//根元素下有多个子元素Iterator<Element> it = root.elementIterator();while (it.hasNext()){//获取第i个元素<sport>Element sport = it.next();System.out.println("元素名称:"+sport.getName());//获取id 和name的属性值String name = sport.attributeValue("name");String id = sport.attributeValue("id");System.out.println("运动员:"+name+",ID:"+id);//获取<expectScore> 和 <realScore>元素值Element expectScoreElement = sport.element("expectScore");Element realScoreElement = sport.element("realScore");//获取<expectScore> 和 <realScore>元素里的文本String expectScore = expectScoreElement.getText();String realScore = realScoreElement.getText();System.out.println(expectScore+","+realScore);System.out.println("=====================================");}}//添加XML文件中的元素==========================================public void addSport() throws IOException {//获取根节点Element root = doc.getRootElement();//添加子元素和子元素的属性Element sportElement = root.addElement("sport");sportElement.addAttribute("name","张三");sportElement.addAttribute("id","1003");//添加子元素的元素<expectScore>、<realScore>和<expectScore>、<realScore>元素内的文本信息Element expectScoreElement = sportElement.addElement("expectScore");expectScoreElement.setText("预计得分70");Element realScoreElement = sportElement.addElement("realScore");realScoreElement.setText("实际得分95");//调用写入方法addScoreInfo();}//删除XML文件中的元素==========================================public void deleteSport() throws IOException {//获取根节点Element root = doc.getRootElement();//根元素下有多个子元素Iterator<Element> it = root.elementIterator();while (it.hasNext()) {Element sportElement=it.next();//获取属性id为1003的子元素String id=sportElement.attributeValue("id");if (id.equals("1003")){//删除根节点下的该元素root.remove(sportElement);}}//调用写入方法addScoreInfo();}//修改XML文件中的元素==========================================public void modifySport() throws IOException {//获取根节点Element root = doc.getRootElement();//根元素下有多个子元素Iterator<Element> it = root.elementIterator();while (it.hasNext()) {Element sportElement=it.next();//获取属性id为1003的子元素String id=sportElement.attributeValue("id");if (id.equals("1003")){//获取子元素的元素<expectScore>、<realScore>,将<expectScore>、<realScore>元素内的文本信息替换Element expectScoreElement = sportElement.element("expectScore");expectScoreElement.setText("预计得分60");Element realScoreElement = sportElement.element("realScore");realScoreElement.setText("实际得分70");}}//调用写入方法addScoreInfo();}
}

        1. 显示

import org.dom4j.DocumentException;import java.io.IOException;public class TestScore {public static void main(String[] args) throws DocumentException, IOException {dom4jParse dom4jParse = new dom4jParse();dom4jParse.loadDocument();dom4jParse.show();}
}

运行结果: 

        2. 添加

添加一个元素,姓名张三,ID1003,预计得分70,实际得分95

import org.dom4j.DocumentException;import java.io.IOException;public class TestScore {public static void main(String[] args) throws DocumentException, IOException {dom4jParse dom4jParse = new dom4jParse();dom4jParse.loadDocument();dom4jParse.addSport();dom4jParse.show();}
}

运行结果:

在XML文件中:

        3. 删除

根据1003这个ID来删除这个元素

import org.dom4j.DocumentException;import java.io.IOException;public class TestScore {public static void main(String[] args) throws DocumentException, IOException {dom4jParse dom4jParse = new dom4jParse();dom4jParse.loadDocument();dom4jParse.deleteSport();dom4jParse.show();}
}

运行结果: 

在XML文件中:

        4. 修改

根据1003这个ID来修改预计得分为60,实际得分为70

import org.dom4j.DocumentException;import java.io.IOException;public class TestScore {public static void main(String[] args) throws DocumentException, IOException {dom4jParse dom4jParse = new dom4jParse();dom4jParse.loadDocument();dom4jParse.modifySport();dom4jParse.show();}
}

显示结果:

在XML文件中:

看完范例代码以后,可以看到其中添加删除修改的元素都是直接以字符串的形式出现了,那么如果只有对象没有XML文件,要我们自己生成XML文件并将对象的元素插入其中,那么我们该如何实现呢?课后练习中我们会将代码展示出来。

附录⭐:

使用dom4j版本:dom4j-1.6.1.jar

https://download.csdn.net/download/m0_62696265/90707510?spm=1001.2014.3001.5503

如无法下载,请自行通过科学方式下载

课后练习:

面向对象的XML综合练习-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词