Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. ///////////
  2. package org.xmlfiles;
  3.  
  4. import java.io.File;
  5. import java.io.IOException;
  6. import java.io.StringWriter;
  7. import java.io.Writer;
  8. import java.util.Scanner;
  9.  
  10. import javax.xml.parsers.DocumentBuilder;
  11. import javax.xml.parsers.DocumentBuilderFactory;
  12. import javax.xml.parsers.ParserConfigurationException;
  13. import javax.xml.transform.OutputKeys;
  14. import javax.xml.transform.Transformer;
  15. import javax.xml.transform.TransformerException;
  16. import javax.xml.transform.TransformerFactory;
  17. import javax.xml.transform.dom.DOMSource;
  18. import javax.xml.transform.stream.StreamResult;
  19.  
  20.  
  21. import org.basex.data.Result;
  22. import org.basex.query.QueryException;
  23. import org.w3c.dom.Attr;
  24. import org.w3c.dom.Document;
  25. import org.w3c.dom.Element;
  26.  
  27. public class NewXML
  28. {
  29. static String xmlfilename;
  30.  
  31. static CheckXML comxml=new CheckXML();//object need to call compareXml()
  32.  
  33.  
  34. public static void main(String ar[]) throws IOException, QueryException
  35. {
  36.  
  37.  
  38. System.out.println("Enter id to create the records:");
  39. Scanner kb=new Scanner(System.in);
  40. int i = kb.nextInt();
  41. try
  42. {
  43. DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
  44. DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
  45.  
  46. // root elements
  47. Document doc = docBuilder.newDocument();
  48.  
  49.  
  50. Element rootElement = (Element) doc.createElement("Transperfect");
  51. doc.appendChild(rootElement);
  52.  
  53. // staff elements
  54. Element staff = doc.createElement("DEV");
  55. rootElement.appendChild(staff);
  56.  
  57. // set attribute to staff element
  58. String id=String.valueOf(i);
  59.  
  60.  
  61. Attr attr = doc.createAttribute("id");
  62. attr.setValue(id);
  63. staff.setAttributeNode(attr);
  64.  
  65. // shorten way
  66. // staff.setAttribute("id", "1");
  67.  
  68. // firstname elements
  69. String fn="yong"+i;
  70.  
  71.  
  72. Element firstname = doc.createElement("firstname");
  73. firstname.appendChild(doc.createTextNode(fn));
  74. staff.appendChild(firstname);
  75.  
  76. // lastname elements
  77. String ln="mook kim"+i;
  78.  
  79. Element lastname = doc.createElement("lastname");
  80. lastname.appendChild(doc.createTextNode(ln));
  81. staff.appendChild(lastname);
  82.  
  83. // nickname elements
  84. String nicknm="mkyong"+i;
  85.  
  86. Element nickname = doc.createElement("nickname");
  87. nickname.appendChild(doc.createTextNode(nicknm));
  88. staff.appendChild(nickname);
  89.  
  90. // salary elements
  91. Element salary = doc.createElement("salary");
  92. salary.appendChild(doc.createTextNode("100000"));
  93. staff.appendChild(salary);
  94.  
  95. // write the content into xml file
  96. TransformerFactory transformerFactory = TransformerFactory.newInstance();
  97. Transformer transformer = transformerFactory.newTransformer();
  98.  
  99. transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  100. transformer.setOutputProperty(OutputKeys.METHOD, "xml");
  101. transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  102. transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "staff");
  103. transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
  104.  
  105. DOMSource source = new DOMSource(doc);
  106.  
  107. java.io.StringWriter sw = new java.io.StringWriter();
  108. StreamResult sr = new StreamResult(sw);
  109. transformer.transform(source, sr);
  110. String xml = sw.toString();
  111.  
  112. xmlfilename="Staff_Member"+""+id+".xml";
  113.  
  114. //StreamResult result = new StreamResult(new File(xmlfilename));
  115.  
  116. StreamResult result = new StreamResult(System.out);
  117.  
  118. transformer.transform(source, result);
  119.  
  120. System.out.println(xmlfilename+":is createdn");
  121.  
  122.  
  123. //==============================Compare Xml file with the Database Xml Files=========================//
  124.  
  125. checkAndCompare(xml);
  126.  
  127.  
  128. }
  129. catch (ParserConfigurationException pce)
  130. {
  131. pce.printStackTrace();
  132. }
  133. catch (TransformerException tfe)
  134. {
  135. tfe.printStackTrace();
  136. }
  137.  
  138.  
  139. }
  140.  
  141. //checkAndCompare method
  142. public static void checkAndCompare(String xml) throws QueryException, IOException
  143. {
  144. Result result=comxml.compareXml(xml);
  145.  
  146. //System.out.println(result);
  147.  
  148. if((result.toString()).equals("true"))
  149. {
  150. System.out.println(result);
  151. System.out.println("Both Xml FIles have same contents");
  152. }
  153. else
  154. {
  155. System.out.println(result);
  156. System.out.println("Both Xml Files have some different contents");
  157. }
  158.  
  159. }
  160.  
  161.  
  162.  
  163. }
  164.  
  165. ////////////////
  166. package org.xmlfiles;
  167.  
  168. import java.io.IOException;
  169.  
  170. import javax.xml.parsers.DocumentBuilder;
  171.  
  172. import org.basex.core.BaseXException;
  173. import org.basex.core.Context;
  174. import org.basex.core.cmd.Open;
  175. import org.basex.core.cmd.XQuery;
  176. import org.basex.data.Result;
  177. import org.basex.query.QueryException;
  178. import org.basex.query.QueryProcessor;
  179. import org.basex.query.value.item.Str;
  180. import org.w3c.dom.NodeList;
  181.  
  182. public class CheckXML
  183. {
  184.  
  185. Context context = new Context();
  186.  
  187. public Result compareXml(String xml) throws QueryException, IOException
  188. {
  189.  
  190. new Open("db").execute(context);
  191. //System.out.println("n* Open collection database");
  192.  
  193.  
  194.  
  195. String xmlFile=xml;
  196.  
  197.  
  198.  
  199. // System.out.println("=================Comparing XML files====================");
  200.  
  201. String query = "declare variable $xml-file as xs:string external;" +
  202. "for $doc in collection('db')where matches(document-uri($doc), '" + xmlFile + "') return deep-equal($doc,$xml-file)";
  203.  
  204. QueryProcessor proc = new QueryProcessor(query, context);
  205.  
  206. proc.bind("xml-file", xmlFile);
  207.  
  208. Result result = proc.execute(); // your result
  209. //System.out.println(result);
  210.  
  211.  
  212. context.close();
  213.  
  214. return result;
  215.  
  216. }
  217.  
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement