java xml解析 Dom解析
1 把整个文档的内容 都读到 内存中,再解析整个文档的根叫 documenthtml文档就是一种xml 文件每一个标签就是 一个 Dom节点2 DOM解析XML的优点:因为分配了一个 树形结构,很方便实现增删改3 DOM解析XML的缺点:如果解析的文件过大,一次性在内存中分配一个 树形结构,造成内存的溢出.step1 项目文件夹放xml文件:student.xml<?xml version=
·
1 Dom解析:
把整个文档的内容 都读到 内存中,再解析
整个文档的根叫 document
html文档就是一种xml 文件
每一个标签就是 一个 Dom节点
2 DOM解析XML的优点:
因为分配了一个 树形结构,很方便实现增删改
3 DOM解析XML的缺点:
如果解析的文件过大,一次性在内存中分配一个 树形结构,造成内存的溢出.
step1 项目文件夹放xml文件: student.xml
<?xml version="1.0" encoding="UTF-8"?>
<人>
<学生>
<姓名>张三</姓名>
<性别>男</性别>
<年龄>15</年龄>
<爱好>蓝球</爱好>
</学生>
<学生>
<姓名>李四</姓名>
<性别>男</性别>
<年龄>16</年龄>
<爱好>足球</爱好>
</学生>
<学生>
<姓名>小P</姓名>
<性别>男</性别>
<年龄>16</年龄>
<爱好>吃</爱好>
</学生>
</人>
step2 Dom解析
package com.android.andriodM;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomParseTest {
//1 获取xml文件节点的内容
@Test
public void domGet() throws Exception{
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("student.xml");
NodeList nodeList = doc.getElementsByTagName("姓名");
//1.1 找到第2个"姓名"标签
Node node = nodeList.item(1);
String content = node.getTextContent();
System.out.println("第2个姓名:"+content);
System.out.println("--------------------");
//1.2 遍历"姓名"标签组
int length = nodeList.getLength();
for (int i = 0; i < length; i++) {
System.out.println("姓名"+i+":"+nodeList.item(i).getTextContent());
}
}
//2 修改xml 文件节点的内容
@Test
public void domSet() throws Exception{
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("student.xml");
NodeList nodeList = doc.getElementsByTagName("姓名");
//1 找到第3个标签,修改节点的内容
Node node = nodeList.item(2);
node.setTextContent("花花");
//2 将修改的内存数据 写到 磁盘中
//内存中的文件
Source xmlSource = new DOMSource(doc);
//磁盘中的目标文件
Result outputTarget = new StreamResult("student.xml");
Transformer transformer = TransformerFactory.newInstance().newTransformer();
//转化
transformer.transform(xmlSource, outputTarget);
}
}
step3 结果
1 获取xml文件节点的内容

2 修改xml 文件节点的内容

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)