java 处理xml格式数据
1.单个xml文件
package lia.meetlucene; import java.io.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class XMLReaderTest1 { static void Dfs(NodeList nodecur) { for (int j = 0; j < nodecur.getLength(); j++) { if ("timestamp".equals(nodecur.item(j).getNodeName())) // 输出pass System.out.println("时间: " + nodecur.item(j).getTextContent()); /* * else if ("origtext".equals(nodecur.item(j).getNodeName())) * System.out.println("原微博: " + nodecur.item(j).getTextContent()); */ else if ("text".equals(nodecur.item(j).getNodeName())) // 输出code System.out.println("微博: " + nodecur.item(j).getTextContent()); NodeList childNodes = nodecur.item(j).getChildNodes(); Dfs(childNodes); } } public static void main(String args[]) { Element element = null; // 可以使用绝对路劲 File f = new File( "C:/Users/Administrator/Desktop/xdj/tengxun/a_46o41785/2014-05-08 09.26.05.xml"); // documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件) DocumentBuilder db = null; DocumentBuilderFactory dbf = null; try { // 返回documentBuilderFactory对象 dbf = DocumentBuilderFactory.newInstance(); // 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象 db = dbf.newDocumentBuilder(); // 得到一个DOM并返回给document对象 Document dt = db.parse(f); // 得到一个elment根元素 element = dt.getDocumentElement(); // 获得根节点 System.out.println("根元素:" + element.getNodeName()); // 获得根元素下的子节点 Dfs(element.getChildNodes()); } catch (Exception e) { e.printStackTrace(); } } }
2.多文件夹里的xml文件
package lia.meetlucene; import java.io.File; import java.io.IOException; import java.util.LinkedList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class Unicode1 { static void Dfs(NodeList nodecur) { for (int j = 0; j < nodecur.getLength(); j++) { if ("timestamp".equals(nodecur.item(j).getNodeName())) // 输出pass System.out.println("时间: " + nodecur.item(j).getTextContent()); /* * else if ("origtext".equals(nodecur.item(j).getNodeName())) * System.out.println("原微博: " + nodecur.item(j).getTextContent()); */ else if ("text".equals(nodecur.item(j).getNodeName())) // 输出code System.out.println("微博: " + nodecur.item(j).getTextContent()); NodeList childNodes = nodecur.item(j).getChildNodes(); Dfs(childNodes); } } public static void main(String[] args) throws IOException { long a = System.currentTimeMillis(); // String dataDir ="C:/Users/Administrator/Desktop/xdj/tengxun/A__Vae"; File dir = new File("C:/Users/Administrator/Desktop/xdj/tengxun"); LinkedList list = new LinkedList(); File file[] = dir.listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isDirectory()) list.add(file[i]); } File tmp; int num = 0; while (!list.isEmpty()) { tmp = (File) list.removeFirst(); file = tmp.listFiles(); for (int i = 0; i < file.length; i++) { System.out.println(file[i].getAbsolutePath()); Element element = null; // documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件) DocumentBuilder db = null; DocumentBuilderFactory dbf = null; try { // 返回documentBuilderFactory对象 dbf = DocumentBuilderFactory.newInstance(); // 返回db对象用documentBuilderFatory对象获得返回documentBuildr对象 db = dbf.newDocumentBuilder(); // 得到一个DOM并返回给document对象 Document dt = db.parse(file[i]); // 得到一个elment根元素 element = dt.getDocumentElement(); // 获得根节点 System.out.println("根元素:" + element.getNodeName()); // 获得根元素下的子节点 Dfs(element.getChildNodes()); num++; } catch (Exception e) { e.printStackTrace(); } } System.out.println(System.currentTimeMillis() - a + " " + num); } } }