1.使用w3c.document

/**
* 测试
*
*/
public static void testReadLabel() {
String path = "C:\\Users\\huage\\Desktop\\o\\示例数据V2.0";
File file = new File(path);
List<String> list = readChildFiles(file); Set<String> setTableName = new HashSet<String>(); for (String p : list) {
int suffixindex = p.lastIndexOf(".");
if (suffixindex < 0)
suffixindex = 0;
String suffix = p.substring(suffixindex);
if (".xml".equalsIgnoreCase(suffix)) {
// System.out.println(p); DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("file:///" + p);
NodeList dogList = doc.getChildNodes();
for (int i = 0; i < dogList.getLength(); i++) {
Node dog = dogList.item(i);
for (Node node = dog.getFirstChild(); node != null; node = node
.getNextSibling()) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
String name = node.getNodeName();
setTableName.add(name);
System.out.println("xmlTableMap.put(\"" + name+ "\", new TableXml(\"\"));");
if (name.contains("像元光谱")) {
System.out.println(p);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} // 所有节点的表名
/*
* for (String name : setTableName) {
* System.out.println("xmlTableMap.put(\""
* +name+"\", new TableXml(\""+name+"\",\"\"));"); }
*/
}

2.使用dom4j

主类如下----

public class dom4jTestXML {
/**
*
* 方法描述:读取XML文件示例 备 注: </br>
* 创 建 人: bo.gaobo</br>
* 修改日期: @2013-8-20</br>
*/
public static void readXML() {
SAXReader sr = new SAXReader();// 获取读取xml的对象。
try {
Document doc = sr.read("src/Noname1.xml");// 得到xml所在位置。然后开始读取。并将数据放入doc中
Element el_root = doc.getRootElement();// 向外取数据,获取xml的根节点。
System.out.println("根节点:" + el_root.getName());
Iterator it = el_root.elementIterator();// 从根节点下依次遍历,获取根节点下所有子节点
while (it.hasNext()) {// 遍历子节点
Object o = it.next();
Element el_row = (Element) o;
String str = el_row.getText();
Iterator it_row = el_row.elementIterator();
while (it_row.hasNext()) {
Element el_ename = (Element) it_row.next();
System.out.println(el_ename.getName() + "="
+ el_ename.getData());
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}

/**
  * 
  * 方法描述:写入XML文件并存储 备 注: </br> 
  */

public static void writeToXML() {
Row row1 = new Row();
row1.setCo("co_1");
row1.setComm("comm_1");
row1.setDepno("depno_1");
row1.setEmpno("empno_1");
row1.setEname("ename_1");
row1.setMgr("mgr_1");
row1.setHiredate("2012-03-29");
row1.setJob("job_1");
row1.setSal("sal_1"); Document document = DocumentHelper.createDocument();
Element root = document.addElement("ROWDATA");
Element row = root.addElement("ROW");
row.addElement("CO").addText(row1.getCo());
row.addElement("EMPNO").addText(row1.getEmpno());
row.addElement("ENAME").addText(row1.getEname());
row.addElement("JOB").addText(row1.getJob());
row.addElement("MGR").addText(row1.getMgr());
row.addElement("HIREDATE").addText(row1.getHiredate());
row.addElement("SAL").addText(row1.getSal());
row.addElement("COMM").addText(row1.getComm());
row.addElement("DEPTNO").addText(row1.getDepno()); String filePath = "D:/xmlTest/" + getNowDay() + "/";
String fileName = "row1.xml"; String xmlStr = "";
xmlStr = document.asXML();
try {
Document dcmt = DocumentHelper.parseText(xmlStr);
saveDocumentToFile(dcmt, filePath, fileName, true, "UTF-8");
} catch (DocumentException e) {
e.printStackTrace();
} } public static String getNowDay() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
return format.format(new Date());
}  /**
  * 方法描述:<b>存储完整XML文件.</b></br>
*
* @param document
* @param xmlFilePath
* @param xmlFileName
* @param isTrimText
* @param xmlEncoding
*/
public static void saveDocumentToFile(Document document,
String xmlFilePath, String xmlFileName, boolean isTrimText,
String xmlEncoding) {
if (document == null || xmlFilePath == null || "".equals(xmlFileName)) {
return;
} File file = new File(xmlFilePath);
// 判断路径是否存在,不存在创建
if (!file.exists()) {
file.mkdirs();
}
// 保存文件
OutputFormat format = null; if (isTrimText) {
format = OutputFormat.createPrettyPrint();
} else {
format = DomXmlOutputFormat.createPrettyPrint();// 保留xml属性值中的回车换行
} if (xmlEncoding != null) {
format.setEncoding(xmlEncoding);// GBK
} else {
format.setEncoding("UTF-8");// UTF-8
} try {
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
new FileOutputStream(xmlFilePath + xmlFileName), format);// FileOutputStream可以使UTF-8生效
xmlWriter.write(document);
xmlWriter.close();
} catch (IOException e) {
System.out.println("保存XML异常:" + e.getMessage());
System.out.println("正在保存的文件名是:" + xmlFileName);
}
// 存到文件中结束
} public static void main(String args[]) {
// readXML();
writeToXML();
} } class Row { private String co;
private String empno;
private String ename;
private String job;
private String mgr;
private String hiredate;
private String sal;
private String comm;
private String depno; public String getCo() {
return co;
} public void setCo(String co) {
this.co = co;
} public String getEmpno() {
return empno;
} public void setEmpno(String empno) {
this.empno = empno;
} public String getEname() {
return ename;
} public void setEname(String ename) {
this.ename = ename;
} public String getJob() {
return job;
} public void setJob(String job) {
this.job = job;
} public String getHiredate() {
return hiredate;
} public void setHiredate(String hiredate) {
this.hiredate = hiredate;
} public String getSal() {
return sal;
} public void setSal(String sal) {
this.sal = sal;
} public String getComm() {
return comm;
} public void setComm(String comm) {
this.comm = comm;
} public String getDepno() {
return depno;
} public void setDepno(String depno) {
this.depno = depno;
} public String getMgr() {
return mgr;
} public void setMgr(String mgr) {
this.mgr = mgr;
}
}

主类结束----

辅助类,重写了createPrettyPrint()方法----

import org.dom4j.io.OutputFormat;
/**
* 类 描 述:<b>dom4j输出格式化.</b></br>
*/
public class DomXmlOutputFormat extends OutputFormat {
/**
* 方法描述:<b>dom4j输出格式化..</b></br>
* 备 注: 保存Document到xml文件时,xml属性中的回车换行需要保留,
* 可是发现在使用过程中发现dom4j自动把回车换行去掉了。特写此类</br>
* @return
*/
public static OutputFormat createPrettyPrint() {
OutputFormat format = new OutputFormat();
format.setIndentSize(2);
format.setNewlines(true);
format.setTrimText(false); // 覆盖 父类的 format.setTrimText(true);
format.setPadText(true); return format;
} }

辅助类结束----

示例XML文件----

<?xml version="1.0" ?>
<ROWDATA>
<ROW>
<C0>1</C0>
<EMPNO>7891</EMPNO>
<ENAME>sdffff</ENAME>
<JOB>job</JOB>
<MGR>mgr</MGR>
<HIREDATE>2010-1-1</HIREDATE>
<SAL>5000.00</SAL>
<COMM>1000.00</COMM>
<DEPTNO>deptno</DEPTNO>
</ROW>
<ROW>
<C0>2</C0>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>1980-12-17</HIREDATE>
<SAL>800.00</SAL>
<COMM>comm</COMM>
<DEPTNO>20</DEPTNO>
</ROW>
</ROWDATA>

示例文件结束----

java-读取xml的更多相关文章

  1. Java读取xml数据

    xml中的代码 <?xml version="1.0" encoding="UTF-8"?> <books id="aaa" ...

  2. java 读取XML文件作为配置文件

    首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...

  3. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  4. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  5. JAVA读取XML文件并解析获取元素、属性值、子元素信息

    JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取  InputStream   DocumentBuilderFactory   Element     Node 前言 最 ...

  6. java读取 xml文件

    java读取xml文件的四种方法  转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...

  7. JAVA读取XML文件数据

    XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...

  8. Java读取xml

    首先将xml的格式展示出来,如下 <?xml version="1.0"?> <configuration> <connectionStrings n ...

  9. JAVA读取XML并打印

    在G盘下新建XML文档:person.xml,XML代码: <?xml version="1.0" encoding="utf-8"?> <s ...

  10. java读取XML文件,及封装XML字符串

    package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...

随机推荐

  1. 【C#进阶系列】27 I/O限制的异步操作

    上一章讲到了用线程池,任务,并行类的函数,PLINQ等各种方式进行基于线程池的计算限制异步操作. 而本章讲的是如何异步执行I/O限制操作,允许将任务交给硬件设备来处理,期间完全不占用线程和CPU资源. ...

  2. 自己动手写计算器v1.1

    这个改动主要是使用工厂模式替代了简单工厂模式,这样做的好处是如果以后我们要扩充其他运算时,就不用总是去修改工厂类, 这是可以采取工厂模式,主要是将原来简单工厂类的逻辑判断分离出来,将它作为一个借口,与 ...

  3. C语言计算2个数的最小公倍数

    #include<stdio.h>int main(){   int a,b,i=1,temp,lcm;   scanf("%d %d",&a,&b); ...

  4. ActiveMQ(li)

    一.ActiveMQ 首先,ActiveMQ不是一个框架,它不是struct,webx,netty这种框架,它更像是tomcat服务器,因为你使用它之前必须启动它,activeMQ和JMS的关系有点类 ...

  5. Quartz —— Spring 环境下的使用

    一.在 Spring 环境下 Quartz 的使用超级简单. 二.具体使用 1.添加对应的 spring-quartz 的配置文件. 2.新建要执行定时任务的目标类和目标方法,不需要继承 Job 接口 ...

  6. 设计模式-策略模式(Strategy Model)

    1.概述     在开发过程中常常会遇到类似问题,实现一个功能的时候往往有多种算法/方法(策略),我们可以根据环境的不同来使用不同的算法或策略来实现这一功能.     如在人物比较排序的实现中,我们有 ...

  7. 实现一个基于 SharePoint 2013 的 Timecard 应用(下)

    现在,基于 Timecard 数据来一点儿数据分析. 应用需求 对于 Timecard,分析下面 2 个方面: 对于单个项目,分析其中每个成员的工时占比,以此了解工作量分配,为组间人员调度提供参考. ...

  8. RecyclerView 的介绍以及多布局的实例

    RecyclerView 的使用以及多布局的实例 RecyclerView 是在Android5.0之后推出的,是一个比ListView更加灵活更加高效的适配器类型控件.但是RecyclerView不 ...

  9. MySQL同步常见问题解答(自己的小心得)

    前几天刚刚注册了博客园,我想写一些技巧性的教程,今天给大家分享一个MySQL同步常见问题解答. Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器? A:有多种方法.如果你在某时间点做 ...

  10. Tomcat 服务应用

    转自:http://wiki.jikexueyuan.com/project/tomcat/windows-service.html Tomcat8 是一个服务应用,能使 Tomcat 8 以 Win ...