生成xml并解析
来源:互联网 发布:rf流体软件 编辑:程序博客网 时间:2024/06/08 08:23
package com.hanyang;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.DOMReader;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class XMLHandler {
@Test
public void createXML() throws IOException {
// 给定的值
String[] strings = { "用户占用", "cpu空闲" };
// map
Map<String, String> map = new HashMap<String, String>();
map.put("1", "用户占用");
map.put("2", "系统占用");
map.put("3", "cpu空闲");
map.put("4", "硬盘读速率");
// 如果包含给定值,遍历key value
if (map.values().contains(strings)) {
// 自己看着写
}
Element root1 = DocumentHelper.createElement("response");
Document document = DocumentHelper.createDocument(root1);
// 给根节点添加孩子节点
Element root = root1.addElement("load");
Element element1 = root.addElement("disk_load");
element1.addElement("disk_read").addText("相应的内容");
element1.addElement("disk_write").addText("相应的内容");
element1.addElement("iowait").addText("相应的内容");
Element element2 = root.addElement("disk_storage_load");
element2.addElement("total_storage").addText("相应的内容");
Element element3 = root.addElement("net_load");
element3.addElement("net_receive").addText("相应的内容");
element3.addElement("net_send").addText("相应的内容");
Element element4 = root.addElement("memory_load");
element4.addElement("mem_total").addText("相应的内容");
element4.addElement("men_available").addText("相应的内容");
element4.addElement("cached_num").addText("相应的内容");
Element element5 = root.addElement("cpu_load");
element5.addElement("user_time").addText(map.get("1"));
element5.addElement("system_time").addText(map.get("2"));
element5.addElement("idle").addText(map.get("3"));
// 把生成的xml文档存放在硬盘上 true代表是否换行
OutputFormat format = new OutputFormat(" ", true);
format.setEncoding("UTF-8");// 设置编码格式
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("Person.xml"),
format);
xmlWriter.write(document);
xmlWriter.close();
}
@Test
public void readXml() throws DocumentException, IOException {
Map map = new HashMap();
Document doc = null;
InputStream in = null;
try {
File file = new File("Person.xml");
List<String> lines=new ArrayList<String>();
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
lines.add(line);
}
br.close();
for (String string : lines) {
System.out.println(string);
}
SAXReader reader = new SAXReader();
// 读取文件 转换成Document
doc = reader.read(new File("Person.xml"));
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("load"); // 获取根节点下的子节点lead
System.out.println(iter);
// 遍历lead节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
Iterator iters = recordEle.elementIterator("disk_load"); // 获取子节点head下的子节点disk_load
while (iters.hasNext()) {
Element itemEle = (Element) iters.next();
String disk_read = itemEle.elementTextTrim("disk_read");
String disk_write = itemEle.elementTextTrim("disk_write");
String iowait = itemEle.elementTextTrim("iowait");
System.out.println("disk_read:" + disk_read);
System.out.println("disk_write:" + disk_write);
map.put("disk_read", disk_read);
map.put("disk_write", disk_write);
map.put("iowait", iowait);
}
}
} finally {
}
}
private void xml2csv(InputStream in) {
StringBuffer rs = new StringBuffer();
SAXReader saxReader = new SAXReader();
Document doc = null;
try {
doc = saxReader.read(in);
List<Element> ls = doc.getRootElement().elements();
for (int i = 0; ls != null && ls.size() > i; i++) {
Iterator<Element> it = ls.get(i).elementIterator();
StringBuffer row = new StringBuffer();
StringBuffer header = new StringBuffer();
while (it.hasNext()) {
Element el = it.next();
if (i == 0) {
// header
header.append(el.getName());
if (it.hasNext()) {
header.append(",");
}
}
row.append(el.getTextTrim());
if (it.hasNext()) {
row.append(",");
}
}
row.append("\n");
if (header.length() > 0) {
header.append("\n");
rs.append(header);
}
rs.append(row);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.DOMReader;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class XMLHandler {
@Test
public void createXML() throws IOException {
// 给定的值
String[] strings = { "用户占用", "cpu空闲" };
// map
Map<String, String> map = new HashMap<String, String>();
map.put("1", "用户占用");
map.put("2", "系统占用");
map.put("3", "cpu空闲");
map.put("4", "硬盘读速率");
// 如果包含给定值,遍历key value
if (map.values().contains(strings)) {
// 自己看着写
}
Element root1 = DocumentHelper.createElement("response");
Document document = DocumentHelper.createDocument(root1);
// 给根节点添加孩子节点
Element root = root1.addElement("load");
Element element1 = root.addElement("disk_load");
element1.addElement("disk_read").addText("相应的内容");
element1.addElement("disk_write").addText("相应的内容");
element1.addElement("iowait").addText("相应的内容");
Element element2 = root.addElement("disk_storage_load");
element2.addElement("total_storage").addText("相应的内容");
Element element3 = root.addElement("net_load");
element3.addElement("net_receive").addText("相应的内容");
element3.addElement("net_send").addText("相应的内容");
Element element4 = root.addElement("memory_load");
element4.addElement("mem_total").addText("相应的内容");
element4.addElement("men_available").addText("相应的内容");
element4.addElement("cached_num").addText("相应的内容");
Element element5 = root.addElement("cpu_load");
element5.addElement("user_time").addText(map.get("1"));
element5.addElement("system_time").addText(map.get("2"));
element5.addElement("idle").addText(map.get("3"));
// 把生成的xml文档存放在硬盘上 true代表是否换行
OutputFormat format = new OutputFormat(" ", true);
format.setEncoding("UTF-8");// 设置编码格式
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("Person.xml"),
format);
xmlWriter.write(document);
xmlWriter.close();
}
@Test
public void readXml() throws DocumentException, IOException {
Map map = new HashMap();
Document doc = null;
InputStream in = null;
try {
File file = new File("Person.xml");
List<String> lines=new ArrayList<String>();
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
lines.add(line);
}
br.close();
for (String string : lines) {
System.out.println(string);
}
SAXReader reader = new SAXReader();
// 读取文件 转换成Document
doc = reader.read(new File("Person.xml"));
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("load"); // 获取根节点下的子节点lead
System.out.println(iter);
// 遍历lead节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
Iterator iters = recordEle.elementIterator("disk_load"); // 获取子节点head下的子节点disk_load
while (iters.hasNext()) {
Element itemEle = (Element) iters.next();
String disk_read = itemEle.elementTextTrim("disk_read");
String disk_write = itemEle.elementTextTrim("disk_write");
String iowait = itemEle.elementTextTrim("iowait");
System.out.println("disk_read:" + disk_read);
System.out.println("disk_write:" + disk_write);
map.put("disk_read", disk_read);
map.put("disk_write", disk_write);
map.put("iowait", iowait);
}
}
} finally {
}
}
private void xml2csv(InputStream in) {
StringBuffer rs = new StringBuffer();
SAXReader saxReader = new SAXReader();
Document doc = null;
try {
doc = saxReader.read(in);
List<Element> ls = doc.getRootElement().elements();
for (int i = 0; ls != null && ls.size() > i; i++) {
Iterator<Element> it = ls.get(i).elementIterator();
StringBuffer row = new StringBuffer();
StringBuffer header = new StringBuffer();
while (it.hasNext()) {
Element el = it.next();
if (i == 0) {
// header
header.append(el.getName());
if (it.hasNext()) {
header.append(",");
}
}
row.append(el.getTextTrim());
if (it.hasNext()) {
row.append(",");
}
}
row.append("\n");
if (header.length() > 0) {
header.append("\n");
rs.append(header);
}
rs.append(row);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
0 0
- 生成xml并解析
- dom4j 生成并解析xml文件
- 解析xml,并通过xml生成pdf文档
- [XML]JAVA解析XSD,并根据选择节点生成XSL
- 图解android中用pull解析并生成xml文件
- Android生成XML并解析成JSON格式
- Java中读取XML文件,生成XML格式的字符串并解析这个字符串
- 对xsd文件的操作 生成java实体并解析生成的xml
- 对xsd文件的操作 生成java实体并解析生成的xml
- 利用jdk对xsd文件操作生成java实体并解析生成的xml
- XML生成与解析
- xml 生成与解析
- 解析XML生成菜单
- dom4j生成/解析XML
- XML解析生成库
- xml 生成,解析
- XML 生成和解析
- java 解析生成xml
- Linux的小企鹅
- session机制与cookie机制
- iOS 9 Auto Layout界面自动布局系列6-自适应布局
- 黑马程序员--Java笔记02--Java语法相关
- java中Calendar类的使用
- 生成xml并解析
- androidStudio导包
- C指向函数指针的函数指针
- python 双端队列 deque
- 教你如何开发VR游戏系列教程一:前言
- Android 二维码生成器
- Android 最火的快速开发框架XUtils
- Ⅰ.2.8 如何做自动压力测试(Automatic Stress Testing)
- XML的增删改查