java-读取xml
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的更多相关文章
- Java读取xml数据
xml中的代码 <?xml version="1.0" encoding="UTF-8"?> <books id="aaa" ...
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- java读取 xml文件
java读取xml文件的四种方法 转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...
- JAVA读取XML文件数据
XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...
- Java读取xml
首先将xml的格式展示出来,如下 <?xml version="1.0"?> <configuration> <connectionStrings n ...
- JAVA读取XML并打印
在G盘下新建XML文档:person.xml,XML代码: <?xml version="1.0" encoding="utf-8"?> <s ...
- java读取XML文件,及封装XML字符串
package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...
随机推荐
- C#开发微信门户及应用(37)--微信公众号标签管理功能
微信公众号,仿照企业号的思路,增加了标签管理的功能,对关注的粉丝可以设置标签管理,实现更加方便的分组管理功能.开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作, ...
- Delphi_03_Delphi_Object_Pascal_基本语法_01
这次是一个基本语法的第一部分,包括变量.变量初始化.常量.运算符.字符串等内容. { 本程序演示 Delphi Pascal 的基本语法 1.变量及变量的初始化 2.常量 3.运算符 3. 4. } ...
- Qt信号与槽自动关联机制
参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...
- redis开启远程访问
redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf 打开redis.conf文件在NETWORK部分有说明 ######################### ...
- ArcGIS Engine开发之地图导出
关于地图导出的方法有很多,但是核心技术就那么一点.下面是从项目实战中总结的一部分地图导出的方法:(以全域导出和区域导出为例) 1.由于地图导出用到的函数和方法容易重复,增加了工作量故首先将其进行封装成 ...
- 如何使用VS在SharePont 2013中插入ashx文件
http://www.lifeonplanetgroove.com/adding-and-deploying-generic-handlers-ashx-to-a-sharepoint-2010-vi ...
- UIBezierPath-完善曲线
override func draw(_ rect: CGRect) { let path = UIBezierPath() // 起点 path.move(to: CGPoint(x: , y: ) ...
- 2、项目标准的制定 - PMO项目管理办公室
PMO项目管理办公室应该是针对公司级别的项目内容制定项目标准.这个由公司的项目经理们进行集中讨论,然后将项目标准进行文档化,标准化,从而为公司的项目进行指导性的功能,为公司的项目进行服务.下面对项目标 ...
- 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下:
Asp.net MVC中的ViewData与ViewBag ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP. ...
- [Bind(Exclude = "OrderId")][ScaffoldColumn(false)]
[Bind(Exclude = "OrderId")] 的意思是:View里的Model,在你提交给 Action时,不会绑定到Action的参数Model,默认它会绑定. mvc ...