加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml文件解析

发布时间:2020-12-16 00:10:08 所属栏目:百科 来源:网络整理
导读:写了一xml文件解析和制作的代码,方便以后的使用 package com.produce; import java.awt.List; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultS

写了一xml文件解析和制作的代码,方便以后的使用

package com.produce;

import java.awt.List;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.Format;
import java.util.ArrayList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
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.Attr;
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;

import Jbdc.MyDal;

import com.xml.Dao.xmlData;

public class produceXML {

private static Document document;

public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}

public void createXml(ArrayList list) {
init();
Element root = document.createElement("configs"); // 创建根节点名字可变
document.appendChild(root);
Element number = document.createElement("number"); // 创建根节点名字可变
/* 创建一个完成的节点,start */
for (int i = 0; i < list.size(); i++) {
xmlData data = (xmlData) list.get(i);
Element item = document.createElement("item");
Attr name = document.createAttribute("name");
item.setAttribute("name","Name"); // 增加属性的另一种方法
item.appendChild(document.createTextNode(data.getDataName()));
number.appendChild(item);

Element item1 = document.createElement("item");
Attr name1 = document.createAttribute("name");
item1.setAttribute("name","Number"); // 增加属性的另一种方法
item1.appendChild(document.createTextNode(data.getID()));
number.appendChild(item1);
root.appendChild(number);

}
// 将DOM对象document写入到xml文件中
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING,"gb2312");
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
PrintWriter pw = new PrintWriter(new FileOutputStream("xml数据记录"));
StreamResult result = new StreamResult(pw);
transformer.transform(source,result); // 关键转换
System.out.println("生成XML文件成功!");
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}

/*
* 解析xml文件
*
* @return 返回一个链表 如果链表为空创建xml文件
*/
public ArrayList<xmlData> parserXml() {
try {
String name = null;
String number = null;
ArrayList<xmlData> list = new ArrayList<xmlData>();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse("xml数据记录");
NodeList employees = document.getChildNodes();
for (int i = 0; i < employees.getLength(); i++) {
Node employee = employees.item(i);
NodeList employeeInfo = employee.getChildNodes();
for (int j = 0; j < employeeInfo.getLength(); j++) {
Node node = employeeInfo.item(j);
NodeList employeeMeta = node.getChildNodes();
for (int k = 0; k < employeeMeta.getLength(); k += 1) {
xmlData xmldata = new xmlData();
if (k % 2 == 1) {
if (name == null) {
name = employeeMeta.item(k).getTextContent();
} else {
number = employeeMeta.item(k).getTextContent();
xmldata.setDataName(name);
xmldata.setID(number);
list.add(xmldata);
System.out.println("name:" + name + ";"
+ "number:" + number);
name = null;
}
}
}
}
}
System.out.println("解析完毕");
return list;
} catch (FileNotFoundException e) {
produceXML j2x = new produceXML();
try {
j2x.buildxml();
} catch (SQLException e1) {

e1.printStackTrace();
}
return null;
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
} catch (SAXException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
return null;
}

/*
* xml中查询数据
*
* @return <0 说明存在或者表中没有该项数据 ; >0返回上次读取数字ID
*/
public String findnumber(String dataname) {
String number = "-1";
produceXML j2x = new produceXML();
ArrayList<xmlData> list = j2x.parserXml();
if (list != null) {
for (int i = 0; i < list.size(); i++) {
xmlData item = list.get(i);
if (dataname.equals(item.getDataName())) {
number = item.getID();
break;
}
}
}
return number;
}


/*
* 创建初始化xml文件
*/
public void buildxml() throws SQLException {
produceXML j2x = new produceXML();
MyDal dbsql = new MyDal();
xmlData data=null;
ArrayList<xmlData> list2 = new ArrayList<xmlData>();
String[] list = { "leadership","tyst","jgjj","jgzn","gzgz","flfg",
"tsff","xzsyxsf","zfxjj","xzsp","busiess","zfwnrbz",
"zxfw","bjxxfb","btffxx","dqgk","lxfs","zxjbszn" };
for (int i = 0; i < list.length; i++) {
data=new xmlData();
data.setDataName(list[i]);
String sql = j2x.sql(i);
System.out.println(list[i]+":"+sql);
ResultSet rs = dbsql.Query(sql);
boolean b = rs.last();
if (b) {
data.setID(rs.getString(1));
}else{
data.setID("0");
}
list2.add(data);
}
createXml(list2);
}

public static void main(String[] args) {
try {
produceXML j2x = new produceXML();
ArrayList<xmlData> list = new ArrayList<xmlData>();
list = j2x.parserXml();
j2x.buildxml();
if (list == null) {
System.out.println("kong");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}

}



dao

package com.xml.Dao; public class xmlData { public String ID; public String dataName; public String getID() { return ID; } public void setID(String iD) { ID = iD; } public String getDataName() { return dataName; } public void setDataName(String dataName) { this.dataName = dataName; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读