Java中的XML操作
1、DOM方式解析(读取)XML文件
待解析(读取)的XML文件,直接放在项目根目录下即可
<?xml version="1.0" encoding="UTF-8"?>
<Language cat="it"> <lan id="">
<name>Java</name>
<ide>Eclipse</ide>
</lan>
<lan id="">
<name>Swift</name>
<ide>Xcode</ide>
</lan>
<lan id="">
<name>C#</name>
<ide>Visual Studio</ide>
</lan> </Language>
相应的解析(读取)java代码:
import java.io.File;
import java.io.IOException; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; public class TestReadXML { public static void main(String[] args) {
//DOM
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("languages.xml"));
Element root = document.getDocumentElement();//获取根元素
System.out.println("cat="+root.getAttribute("cat"));
NodeList list = root.getElementsByTagName("lan");//获取子元素lan
for(int i=;i<list.getLength();i++){
Element lan = (Element) list.item(i);
System.out.println("--------");
System.out.println("id="+lan.getAttribute("id")); // Element name = (Element) lan.getElementsByTagName("name").item(0);//不使用这种方法
// System.out.println("name="+name.getTextContent()); NodeList clist = lan.getChildNodes();//获取lan的所有子元素
for(int j=;j<clist.getLength();j++){
Node c = clist.item(j);
if(c instanceof Element)
System.out.println(c.getNodeName()+"="+c.getTextContent());
}
} } catch (ParserConfigurationException e) { e.printStackTrace();
} catch (SAXException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
}
} }
2、DOM方式创建XML文件
import java.io.File;
import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document;
import org.w3c.dom.Element; public class WriteXML { public static void main(String[] args) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
Element root = document.createElement("Languages");
root.setAttribute("cat", "it"); Element lan1 = document.createElement("lan");
lan1.setAttribute("id", "");
Element name1 = document.createElement("name");
Element ide1 = document.createElement("ide");
name1.setTextContent("Java");
ide1.setTextContent("eclipse");
lan1.appendChild(name1);
lan1.appendChild(ide1); Element lan2 = document.createElement("lan");
lan1.setAttribute("id", "");
Element name2 = document.createElement("name");
Element ide2 = document.createElement("ide");
name2.setTextContent("Swift");
ide2.setTextContent("Xcode");
lan2.appendChild(name2);
lan2.appendChild(ide2); Element lan3 = document.createElement("lan");
lan3.setAttribute("id", "");
Element name3 = document.createElement("name");
Element ide3 = document.createElement("ide");
name3.setTextContent("C#");
ide3.setTextContent("Visual Studio");
lan3.appendChild(name3);
lan3.appendChild(ide3); root.appendChild(lan1);
root.appendChild(lan2);
root.appendChild(lan3);
document.appendChild(root); //----------------------- TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer tansformer = transformerFactory.newTransformer();
StringWriter writer = new StringWriter();
tansformer.transform(new DOMSource(document), new StreamResult(writer));
System.out.println(writer.toString());//输出到控制台 tansformer.transform(new DOMSource(document), new StreamResult(new File("newxml.xml")));//输出到xml文本
} catch (ParserConfigurationException e) { e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) { e.printStackTrace();
}
} }
Java中的XML操作的更多相关文章
- [j2ee]java中的xml操作
一.XML简单介绍 xml是可扩展标记语言,主要用来标记数据.定义数据类型,很适合万维网传输. xml特点: xml是一种标记语言.非常类似HTML xml的设计宗旨是数据传输,而不是显示数 ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- Java中的Xml配置文件(新手)
Java中的Xml配置文件,本文是转发转发转发!重要的事情说三遍 一:概念 1.XML Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传 ...
- JAVA中的时间操作
java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...
- java中的集合操作类(未完待续)
申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- java中拼写xml
本文为博主原创,未经博主允许,不得转载: xml具有强大的功能,在很多地方都会用的到.比如在通信的时候,通过xml进行消息的发送和交互. 在项目中有很多拼写xml的地方,进行一个简单的总结. 先举例如 ...
- Java中的文件操作(一)RandomAccessFile
今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...
- Java并发--Java中的CAS操作和实现原理
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/CringKong/article/deta ...
随机推荐
- Jmeter命令行运行实例讲解
1. 简介 使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资 本文介绍windows下以命令行模式运行的方法. 1.1. 命令介绍 jmeter -n -t & ...
- c++大作业--学籍管理系统--
1.题目描写叙述 学籍管理系统: 依据信息管理系统的业务流程.要求以及所要实现的目标,完毕下面功能: (1)建立学生档案的管理和维护.实现计算机自己主动化管理体制. (2)建立学生成绩管理机制,在计算 ...
- sgu Flow construction
Flow construction 题目: 给出N个节点M条水管,要求在满足上下界的情况下.满足起点最小的流量. 算法: 这是最小流????不知道.仅仅知道用求解上下界最大流的方法就过了. 做这题收获 ...
- Android原理揭秘系列之一动态墙纸
Livewallpaper,即动态墙纸,是Android的一大3D特色功能,用户可以在桌面选择加载动态墙纸,让自己的手机桌面背景旋动起来. 相对于静态桌面壁纸,动态墙纸可以展示各种动态变化的背景,而与 ...
- mysql求时间差
SELECT TIMESTAMPDIFF(SECOND, now(), "2012-11-11 00:00:00") 语法为:TIMESTAMPDIFF(unit,datetime ...
- oracle 配置服务端
oracle 配置服务端,类似我们配置java环境一样 防止乱码的配置: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 选择数据库的配置(重要) ...
- C#。3 循环
循环:可以反复执行某段代码,直到不满足循环条件为止. 一.循环的四要素:初始条件.循环条件.状态改变.循环体. 1.初始条件:循环最开始的状态. 2.循环条件:在什么条件下进行循环,不满足此条件,则循 ...
- C#中对Excel进行操作
工作中要处理一批数据,主要是处理从别处导出来的Excel表格(大概有一千多行,三十多列),拿到表格对Excel表格进行分析,按照一定的规则进行拆分成为一万多行的数据:首先这个需求要用程序进行处理的背景 ...
- Mysql学习(慕课学习笔记9)查询、分组
查找记录 Select select username,id from users; Group by 进行分组 select sex from users group by sex; 分组条件 se ...
- $().text() 和 $().html()
1:性能 stackflow:http://stackoverflow.com/questions/1910794/what-is-the-difference-between-jquery-text ...