1 14 15 package webEditor.util; 16 17 import java.io.*; 18 import java.util.Enumeration ; 19 import java.util.Hashtable ; 20 21 import org.w3c.dom.*; 23 24 import org.apache.xerces.dom.*; 25 import org.apache.xerces.parsers.DOMParser; 26 27 31 public class xml_parser 32 { 33 38 public Hashtable parseConfFile (String confFile) 39 { 40 Hashtable myTable = new Hashtable (); 41 Hashtable auxTable = null; 42 String categoryName = null; 43 44 try { 45 DOMParser parser = new DOMParser(); 47 confFile = new File (confFile).getAbsolutePath(); 48 confFile = "file:" + confFile; 49 parser.parse(confFile); 50 Document doc = parser.getDocument(); 51 52 Element root = doc.getDocumentElement(); 54 String rootTag = root.getTagName(); 55 NodeList list = doc.getElementsByTagName(rootTag).item(0).getChildNodes(); 56 57 for (int i=0; i < list.getLength(); i++) { 59 Node myCategory = list.item(i); 60 if (myCategory.getNodeName().equals("category")) { 61 categoryName = myCategory.getAttributes().getNamedItem("name").getNodeValue(); 62 NodeList itemNodes = myCategory.getChildNodes(); 63 64 auxTable = new Hashtable (); 66 for (int j=0; j < itemNodes.getLength(); j++) { 67 Node myItem = itemNodes.item(j); 68 if (myItem.getNodeName().equals("data")) { 69 auxTable.put(myItem.getAttributes().getNamedItem("code").getNodeValue(), 70 myItem.getFirstChild().getNodeValue()); 71 } 72 } 73 myTable.put (categoryName, auxTable); 75 } 76 } 77 78 } catch (Exception e) { 79 e.printStackTrace(); 80 } 81 return (myTable); 82 } 83 84 89 public Hashtable parseDOM (Document content) 90 { 91 Hashtable myTable; 92 myTable = new Hashtable (); 93 94 try { 95 Element root = content.getDocumentElement(); 96 String rootTag = root.getTagName(); 97 NodeList list = content.getElementsByTagName(rootTag).item(0).getChildNodes(); 98 99 for (int i=0; i < list.getLength(); i++) { 101 if (list.item(i).getNodeName().equals("data")) { 102 myTable.put(list.item(i).getAttributes().getNamedItem("code").getNodeValue(), 103 list.item(i).getFirstChild().getNodeValue()); 104 } 105 } 106 107 } catch (Exception e) { 108 e.printStackTrace(); 109 } 110 return (myTable); 111 } 112 113 119 public Document writeDOM (String docRoot, Hashtable content) 120 { 121 Document doc= new DocumentImpl(); 122 Element item; 123 Element itemCategory; 124 Element root = doc.createElement(docRoot); 125 126 Enumeration myList = content.keys(); 127 128 for (; myList.hasMoreElements() ;) { 129 String name = (String ) myList.nextElement(); 130 itemCategory = doc.createElement ("category"); 133 itemCategory.setAttribute ("name", name); 134 135 Hashtable category = (Hashtable ) content.get(name); 136 Enumeration myItems = category.keys(); 137 for (; myItems.hasMoreElements() ;) { 138 String code = (String ) myItems.nextElement(); 139 String value = (String ) category.get(code); 140 141 item = doc.createElement ("data"); 142 item.setAttribute ("code", code); 143 item.appendChild (doc.createTextNode(value)); 144 itemCategory.appendChild (item); 145 } 146 root.appendChild (itemCategory); 147 } 148 doc.appendChild (root); 149 150 return (doc); 151 } 152 153 } 154 | Popular Tags |