Java DOM 兑现方法
Java DOM 实现方法
package com.b2cquery.icbc; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Vector; import java.util.logging.Logger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; 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; public class DOM { public Vector<Vector<String>> ICBCworkingDOM() { DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); Vector<Vector<String>> queryresult = new Vector<Vector<String>>(); Vector<String> rowdata = new Vector<String>(); Double totalmoney = 0.00; boolean tag = true; String nexttag =""; try { int rdcount = 0; DocumentBuilder dombuilder = domfac.newDocumentBuilder(); //ICBCB2CQuery icbc = new ICBCB2CQuery(); //InputStream is = icbc.B2CQueryByPage("20110407", "20110407", ""); InputStream is = new FileInputStream("E:/icbc.xml"); Document doc = dombuilder.parse(is); Element CMS = doc.getDocumentElement(); NodeList eb = CMS.getChildNodes(); for (int i = 0; i < eb.getLength(); i++) { // get eb if (eb.item(i).getNodeType() == Node.ELEMENT_NODE && eb.item(i).getNodeName().equals("eb")) { //System.out.println(eb.item(i).getNodeName()); //System.out.println("I'm eb!"); NodeList eblist = eb.item(i).getChildNodes(); for (int j = 0; j < eblist.getLength(); j++) { //get pub // if (eblist.item(j).getNodeType() == Node.ELEMENT_NODE && eblist.item(j).getNodeName().equals("pub")){ // NodeList pubList = eblist.item(j).getChildNodes(); // for (int k = 0; k < pubList.getLength(); k++) { // if(pubList.item(k).getNodeType() == Node.ELEMENT_NODE){ // System.out.println(pubList.item(k).getNodeName()); // } // } // } //get out if (eblist.item(j).getNodeType() == Node.ELEMENT_NODE && eblist.item(j).getNodeName().equals("out")) { NodeList outList = eblist.item(j).getChildNodes(); //System.out.println(eblist.item(j).getNodeName()); for (int k = 0; k < outList.getLength(); k++) { //get NextTag if (outList.item(k).getNodeType() == Node.ELEMENT_NODE&& outList.item(k).getNodeName().equals("NextTag")){ String getNextTag = outList.item(k).getTextContent(); if (getNextTag.equals("") == false) { tag = true; nexttag = getNextTag; } else{ tag = false; nexttag = ""; } } //getrd if (outList.item(k).getNodeType() == Node.ELEMENT_NODE&& outList.item(k).getNodeName().equals("rd")) { rdcount++; //System.out.println(outList.item(k).getNodeName()); //System.out.println("I'm rd!"); NodeList rdList = outList.item(k).getChildNodes(); //get orderInfo for (int l = 0; l < rdList.getLength(); l++) { if (rdList.item(l).getNodeType() == Node.ELEMENT_NODE && rdList.item(l).getNodeName().equals("SerialNo")) { rowdata.add(rdList.item(l).getTextContent()); } if (rdList.item(l).getNodeType() == Node.ELEMENT_NODE && rdList.item(l).getNodeName().equals("OrderNum")) { rowdata.add(rdList.item(l).getTextContent()); } if (rdList.item(l).getNodeType() == Node.ELEMENT_NODE && rdList.item(l).getNodeName().equals("OrderAmt")) { String amt = rdList.item(l).getTextContent(); int amtL = amt.length(); String temphead = amt.substring(0, amtL-2); String temptail = amt.substring(amtL-2,amtL); String finallyhamt = temphead + "." + temptail; totalmoney = totalmoney + Double.valueOf(finallyhamt); rowdata.add(finallyhamt); } if (rdList.item(l).getNodeType() == Node.ELEMENT_NODE && rdList.item(l).getNodeName().equals("TranTime")) { rowdata.add(rdList.item(l).getTextContent()); } if (rdList.item(l).getNodeType() == Node.ELEMENT_NODE && rdList.item(l).getNodeName().equals("Result")) { rowdata.add(rdList.item(l).getTextContent()); queryresult.add(rowdata); rowdata = new Vector<String>(); } } } } } } } } return queryresult; } catch (ParserConfigurationException e) { e.printStackTrace(); return null; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } catch (SAXException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } public DOM(){ } public static void main(String[] args) { Vector<Vector<String>> queryresult = new DOM().ICBCworkingDOM(); int i = 0; for (Vector<String> vector : queryresult) { i++; for (String string : vector) { //System.out.println(string); } } loger.info(""+i); } private static final Logger loger = Logger.getLogger("DOM"); }