JAVA中的XML

XML文档内容由一系列标签元素组成
<元素名 属性名**="属性值">元素内容</元素名>**

1.属性值用双引号包裹

2.一个元素可以有多个属性

  1. 属性值中不能直接包含<、"、&

  2. 不建议使用的字符:'、>

注意事项

  1. 所有XML元素都必须有结束标签

2.XML标签对大小写敏感

3.XML必须正确的嵌套

4.同级标签以缩进对齐

5.元素名称可以包含字母、数字或其他的字符

6.元素名称不能以数字或者标点符号开始

7.元素名称中不能含空格

  1. 读取xml文件 SAXReader()

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

    SAXReader saxReader = new SAXReader();

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

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

2.获取XML根节点getRootElement()

复制代码
Element rootElement = document.getRootElement();
复制代码

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

复制代码
List<Element> Elist = rootElement.elements();
复制代码
4.根据指定子元素名,获取元素下所有子节点
复制代码
List<Element> Elist = rootElement.elements("books");
复制代码

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

复制代码
Element element= rootElement.element("books");

6.设置元素文本内容 setText()

复制代码
newelement.setText("内容");
复制代码
elenent.getText()
7.获取当前节点文本内容 getText()
复制代码
elenent.getText()

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

复制代码
elenent.elementText("book")

9.获取当前节点属性 attributeValue("属性名")

复制代码
elenent.attributeValue("name")

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

复制代码
Element newelement = rootElement.addElement("span");

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

复制代码
newelement.addAttribute("type","属性值");

12.新XML添加Documen对象

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

复制代码
Document read = DocumentHelper.createDocument();

13.设置XML编码

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

复制代码
OutputFormat outputFormat=OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");

14.写入XML文件

复制代码
//写入XML文件的位置 以及指定的格式
XMLWriter xmlWriter=new XMLWriter(new FileWriter("cs.xml"),outputFormat);
//开始写入XML文件   写入Document对象
xmlWriter.write(document);
xmlWriter.close();

示例

java 复制代码
public static void main(String[] args) {
		//将xml文件加载到内存中 XML解析器
		SAXReader saxReader = new SAXReader();
		try {
			//document 加载执行xml文档获取Document对象	
			Document doc = saxReader.read("src/text01/收藏信息.xml");
			//	获取XML根节点getRootElement()
		Element rootelement = doc.getRootElement();
		//获取根节点的名字
		System.out.println(rootelement.getName());
		//获取根节点下的每个子节点e
		List <Element> Elist = rootelement.elements();
		for(Element e:Elist ) {
			//获取根节点下的子节点的属性信息
			System.out.println(e.attributeValue("name"));
			//获取子节点下的每个子节点e1
			List <Element> type = e.elements();
			for(Element e1:type ) {
				System.out.println(e1.getText());
			}
			System.out.println("-----------");
		}
		
		
		
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
相关推荐
w2sfot1 天前
Passing Arguments as an Object in JavaScript
开发语言·javascript·ecmascript
郝学胜-神的一滴1 天前
避免使用非const全局变量:C++中的最佳实践 (C++ Core Guidelines)
开发语言·c++·程序人生
我没想到原来他们都是一堆坏人1 天前
(未完待续...)如何编写一个用于构建python web项目镜像的dockerfile文件
java·前端·python
搞一搞汽车电子1 天前
S32K3平台eMIOS 应用说明
开发语言·驱动开发·笔记·单片机·嵌入式硬件·汽车
沙二原住民1 天前
提升数据库性能的秘密武器:深入解析慢查询、连接池与Druid监控
java·数据库·oracle
l1t1 天前
轻量级XML读写库Mini-XML的编译和使用
xml·c语言·解析器
微笑伴你而行1 天前
标注格式转换csv转xml
xml
Jerry&Grj1 天前
SpringBoot埋点功能技术实现方案深度解析:架构设计、性能优化与扩展性实践
java·微服务·性能优化·springboot·架构设计·埋点技术
没有bug.的程序员1 天前
Redis Stream:轻量级消息队列深度解析
java·数据库·chrome·redis·消息队列
总有刁民想爱朕ha1 天前
车牌模拟生成器:Python3.8+Opencv代码实现与商业应用前景(C#、python 开发包SDK)
开发语言·python·数据挖掘