| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- package xin.glue.ui.G.G07;
- import java.io.FileOutputStream;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.InputStream;
- 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;
- import com.sun.org.apache.xerces.internal.dom.DocumentImpl;
- import com.sun.org.apache.xml.internal.serialize.OutputFormat;
- import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
- import java.util.Hashtable;
- import java.util.ArrayList;
- public class DomXmlParser{
- DocumentBuilderFactory domfac = null;
- DocumentBuilder dombuilder = null;
-
- private ArrayList items = new ArrayList();
- String revStr = null;
- String xpath = null;
- String docId = null;
-
- private int strLenTagFrom = 0;
- private int strLenTagto = 0;
-
- public DomXmlParser( String xpath){
- this.xpath = "E:\\XML_PARSE\\" + xpath + "-msg.xml";
- }
-
- public void setRevStr(String revStr){
- this.revStr = revStr;
- }
-
- public ArrayList getItems(){
- return items;
- }
-
- public void runDomXmlParser(){
- try{
- domfac=DocumentBuilderFactory.newInstance();
- dombuilder=domfac.newDocumentBuilder();
-
- InputStream is = new FileInputStream(xpath);
- Document doc=dombuilder.parse(is);
- Element root=doc.getDocumentElement();
-
- NodeList msgs=root.getChildNodes();
-
- if(msgs != null){
- for(int i = 0 ; i< msgs.getLength() ; i++){
- Node msg = msgs.item(i);
- if(msg.getNodeType() == Node.ELEMENT_NODE){
-
- docId = msg.getAttributes().getNamedItem("id").getNodeValue();
-
- NodeList attributes = msg.getChildNodes();
-
- if(attributes != null){
-
- for(int j = 0 ; j < attributes.getLength() ; j++){
- Node attribute = attributes.item(j);
-
- if(attribute.getNodeType() == Node.ELEMENT_NODE){
-
- Hashtable ht = new Hashtable();
-
- String seq = attribute.getAttributes().getNamedItem("seq").getNodeValue();
- String id = attribute.getAttributes().getNamedItem("id").getNodeValue();
- String name = attribute.getAttributes().getNamedItem("name").getNodeValue();
- String datatype = attribute.getAttributes().getNamedItem("datatype").getNodeValue();
- String length = attribute.getAttributes().getNamedItem("length").getNodeValue();
-
- ht.put("seq",seq);
- ht.put("id",id);
- ht.put("name",name);
- ht.put("datatype",datatype);
- ht.put("length",length);
-
- items.add(ht);
- }
- }
- }
- }
- }
- }
-
- } catch (ParserConfigurationException e){
-
- e.printStackTrace();
- } catch (FileNotFoundException e){
- e.printStackTrace();
- } catch (SAXException e){
- e.printStackTrace();
- } catch (IOException e){
- e.printStackTrace();
- }
-
- }
-
- private void displayItes(){
-
- for(int i=0;i<items.size();i++){
-
- Hashtable data = (Hashtable)items.get(i);
- System.out.print (data.get("seq") + "---");
- System.out.print (data.get("id") + "---");
- System.out.print (data.get("name") + "---");
- System.out.print (data.get("datatype") + "---");
- System.out.println (data.get("length"));
-
- }
- }
-
- private void displayItes2(){
-
- for(int i=0;i<items.size();i++){
-
- Hashtable data = (Hashtable)items.get(i);
- System.out.print (data.get("seq") + "---");
- System.out.print (data.get("id") + "---");
- System.out.print (data.get("value") + "---");
- System.out.print (data.get("name") + "---");
- System.out.print (data.get("datatype") + "---");
- System.out.println (data.get("length"));
-
- }
- }
-
- public void cutStr(){
- for(int i=0;i<items.size();i++){
-
- Hashtable data = (Hashtable)items.get(i);
- try{
- strLenTagto += Integer.parseInt((String)data.get("length"));
-
- String tempStr = revStr.substring(strLenTagFrom,strLenTagto);
- data.put("value", tempStr);
- strLenTagFrom += Integer.parseInt((String)data.get("length"));
-
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- strLenTagto = 0;
- strLenTagFrom = 0;
- }
-
- private void createXmlFile(){
- // 下面是建立XML文档内容的过程,
- // 先建立根元素"msgs"
- Document doc = new DocumentImpl();
-
- Element root = doc.createElement("msgs");
- // 根元素添加上文档
- doc.appendChild(root);
- // 建立"msg"元素,添加到根元素
- Element msg = doc.createElement("msg");
- msg.setAttribute("id", docId);
- root.appendChild(msg);
- // 建立"attribute"元素,添加到msg下面,
-
-
- for(int i=0;i<items.size();i++){
- Element attribute = doc.createElement("attribute");
-
- Hashtable data = (Hashtable)items.get(i);
- attribute.setAttribute("seq",(String)data.get("seq"));
- attribute.setAttribute("id",(String)data.get("id"));
- attribute.setAttribute("value",(String)data.get("value"));
- attribute.setAttribute("name",(String)data.get("name"));
- attribute.setAttribute("datatype",(String)data.get("datatype"));
- attribute.setAttribute("length",(String)data.get("length"));
-
- msg.appendChild(attribute);
- }
-
- try{
- // OutputStream os = new FileOutputStream("E:\\XML_PARSE\\test.xml");
- doc.setXmlVersion("1.0");
-
- OutputFormat format = new OutputFormat(doc);
- format.setLineSeparator("\n");
- format.setIndenting(true);
- format.setEncoding("GB2312");
- FileWriter fout = new FileWriter("E:\\XML_PARSE\\test.xml");
- XMLSerializer serial = new XMLSerializer(fout, format);
- serial.asDOMSerializer();
- serial.serialize(doc.getDocumentElement());
- fout.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- /*public static void main(String[] args){
- DomXmlParser xmlPs = new DomXmlParser();
- xmlPs.displayItes();
-
- xmlPs.cutStr();
-
- xmlPs.displayItes2();
-
- xmlPs.createXmlFile();
- }*/
- }
|