java xml的读取与写入(dom)
首先,先获取到文档对象
private static Document getDocument(String path) {
//1.创建DocumentBuilderFactory对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//文档构建对象
DocumentBuilder builder = null;
try {
//从工厂对象中获得文档构建对象
builder = factory.newDocumentBuilder();
//用文档构建对象创建文档 参数为xml文件地址
Document d = builder.parse(path);
//简写
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(path);
return d;
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
然后拿到了一个文档树
遍历这个文档树主要用到这些方法
- getElementsByTagName(string tagname) //返回NodeList 根据元素名查找,没找到也会返回一个长度为0的空列表
- getChildNodes() // 返回NodeList 返回当前元素的所有直接子元素
- getElementById() //返回Element 返回具有指定id的元素
因为xml标签名称都是自定的所以一般使用getElementsByTagName()就够用了
//使用getElementsByTagName获取xml元素
NodeList list= d.getElementsByTagName("Brand");
//循环读取
for (int i = 0; i < list.getLength(); i++) {
//接收列表中的项目并转换为元素 由于NodeList的item返回Node 而Element是Node的子接口,所以可以直接转换
Element element = (Element) list.item(i);
//对获取到的元素进行各种操作
//获取name属性
String name = element.getAttribute("name");
//删除自身
element .getParentNode().removeChild(brand.item(i));
//设置属性
element.setAttribute("id", i + "");
}
同理,多级只需要多重循环即可
//使用getElementsByTagName获取xml元素
NodeList list= d.getElementsByTagName("Brand");
//循环读取
for (int i = 0; i < list.getLength(); i++) {
//接收列表中的项目并转换为元素
Element element = (Element) list.item(i);
...
//第二层
NodeList list2= d.getElementsByTagName("Brand");
for (int i = 0; i < list2.getLength(); i++) {
Element element2 = (Element) list.item(i);
...
}
}
写入待明天更新....
java xml的读取与写入(dom)的更多相关文章
- Java使用POI读取和写入Excel指南
Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...
- Java使用POI读取和写入Excel指南(转)
做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0 ...
- Java学习-023-Properties 类 XML 配置文件读取及写入源代码
之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFr ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- JAVA xml 流方式读取。数据挖掘大文件预处理。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- 使用java进行excel读取和写入
1:添加处理excel的依赖jar包 <!-- 引入poi,解析workbook视图 --> <dependency> <groupId>org.apache.po ...
- Java是如何读取和写入浏览器Cookies的
首先我们认识下什么是cookies: cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般 ...
- 关于java读取和写入properties配置文件的内容
一般通过使用流的方式进行读取 代码示例如下: package com.zznode.transmit.util; import java.io.FileInputStream; import java ...
- C#中XML的读取
本文主要介绍在C#中有关XML的读取,写入操作. 1.XML的内容如下: <?xml version="1.0" encoding="utf-8" ?&g ...
随机推荐
- 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会. 本次专场研讨会由阿里巴巴集团副总裁.高级研究员,阿里云智能数据库产品事业部负责 ...
- ta-lib 里的蜡烛图形态函数源码
ta-lib 里的蜡烛图形态函数源码 以CDL2CROWS为例, 看一看c语言的源码: 有关的源码文件包括 d:\Documents\Pictures\ta-lib\c\src\ta_func\ta_ ...
- Java面向对象----Java面向对象(OOP)概念
理解面向对象 关键:让每一个对象负责执行一组相关任务 面向过程:算法第一,数据第二 面向对象:数据第一,算法第一 特点: 万物皆对象 程序是一组对象彼此之间在发送消息 每个对象都有自己的内存占用,可以 ...
- 最优化WPF 3D性能(基于“Tier-2”硬件)
原文:最优化WPF 3D性能(基于"Tier-2"硬件) 原文地址:Maximizing WPF 3D Performance on Tier-2 Hardware 开发人员在应用 ...
- @atcoder - Japanese Student Championship 2019 Qualification - E@ Card Collector
目录 @description@ @solution@ @accepted code@ @details@ @description@ N 个卡片放在 H*W 的方格图上,第 i 张卡片的权值为 Ai ...
- java文件操作 之 创建文件夹路径和新文件
一:问题 (1)java 的如果文件夹路径不存在,先创建: (2)如果文件名 的文件不存在,先创建再读写;存在的话直接追加写,关键字true表示追加 (3)File myPath = new File ...
- cesium 基础
scaleByDistance : new Cesium.NearFarScalar(1.5e2, 1.5, 8.0e6, 0.0),--(近值,近端放大率,远值,远端放大率) 给定距离视点的近值和远 ...
- H3C 命令行编辑功能
- oracle优化EXPORT和IMPORT
使用较大的BUFFER(比如10MB , 10,240,000)可以提高EXPORT和IMPORT的速度. ORACLE将尽可能地获取你所指定的内存大小,即使在内存不满足,也不会报错.这个值至少要和表 ...
- 如何学习Python的一些总结
https://mp.weixin.qq.com/s/w0NoDiYfvtTy8N3BVoIVpw 为什么选择Python 经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活, ...