Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. import javax.xml.parsers.DocumentBuilderFactory;
  2. import javax.xml.parsers.DocumentBuilder;
  3. import org.w3c.dom.Document;
  4. import org.w3c.dom.NodeList;
  5. import org.w3c.dom.Node;
  6. import org.w3c.dom.Element;
  7. import java.io.File;
  8. import java.util.ArrayList;
  9.  
  10. public class XMLReader {
  11. ArrayList<Vertex> xmlVertex;
  12. ArrayList<Edge> xmlEdge;
  13. int heigth;
  14. int width;
  15.  
  16. public XMLReader() {
  17. xmlVertex = new ArrayList<>();
  18. xmlEdge = new ArrayList<>();
  19.  
  20.  
  21. try {
  22.  
  23. File fXmlFile = new File("graph5_32.xml");
  24. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  25. DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
  26. Document doc = dBuilder.parse(fXmlFile);
  27.  
  28. //optional, but recommended
  29. //read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
  30. doc.getDocumentElement().normalize();
  31.  
  32. System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
  33.  
  34. NodeList vertexList = doc.getElementsByTagName("node");
  35. NodeList edgeList = doc.getElementsByTagName("edge");
  36. NodeList graphList = doc.getElementsByTagName("graph");
  37.  
  38. heigth = Integer.valueOf(((Element) graphList.item(0)).getAttribute("height"));
  39. width = Integer.valueOf(((Element) graphList.item(0)).getAttribute("width"));
  40.  
  41. System.out.println("----------------------------");
  42.  
  43. for (int temp = 0; temp < vertexList.getLength(); temp++) {
  44.  
  45. Node nNode = vertexList.item(temp);
  46.  
  47. //System.out.println("\nCurrent Element :" + nNode.getNodeName());
  48.  
  49. if (nNode.getNodeType() == Node.ELEMENT_NODE) {
  50. Element eElement = (Element) nNode;
  51.  
  52. int id = Integer.valueOf(eElement.getAttribute("id"));
  53. int x = Integer.valueOf(eElement.getAttribute("x"));
  54. int y = Integer.valueOf(eElement.getAttribute("y"));
  55.  
  56. Vertex v = new Vertex(id, x, y);
  57. xmlVertex.add(v);
  58. }
  59.  
  60. }
  61.  
  62. //Hier Ausgabe der Eingelesenen Vertices
  63. /*
  64. for(Vertex v : xmlVertex) {
  65. System.out.println(v.printVertex());
  66. }*/
  67.  
  68. for(int temp = 0; temp < edgeList.getLength(); temp++) {
  69.  
  70. Node nNode = edgeList.item(temp);
  71.  
  72. //System.out.println("\nCurrent Element :" + nNode.getNodeName());
  73.  
  74. if (nNode.getNodeType() == Node.ELEMENT_NODE) {
  75. Element eElement = (Element) nNode;
  76.  
  77. int id = Integer.valueOf(eElement.getAttribute("id"));
  78. Vertex from = getVertexWith(Integer.valueOf(eElement.getAttribute("start")));
  79. Vertex to = getVertexWith(Integer.valueOf(eElement.getAttribute("end")));
  80.  
  81. Edge e = new Edge(from, id, to);
  82. xmlEdge.add(e);
  83. }
  84. }
  85.  
  86. //Hier Ausgabe der Eingelesenen Vertices
  87. /*
  88. for(Edge v : xmlEdge) {
  89. System.out.println(v.printEdge());
  90. }*/
  91.  
  92. System.out.println("Size of VERTICES: " +xmlVertex.size());
  93. System.out.println("Size of EDGES: " +xmlEdge.size());
  94. }
  95. catch (Exception e) {
  96. e.printStackTrace();
  97. }
  98. }
  99.  
  100. public ArrayList<Vertex> returnVertices(){
  101. return xmlVertex;
  102. }
  103.  
  104. public ArrayList<Edge> returnEdges(){
  105. return xmlEdge;
  106. }
  107.  
  108. public int getHeight() {
  109. return heigth;
  110. }
  111.  
  112. public int getWidth() {
  113. return width;
  114. }
  115.  
  116. private Vertex getVertexWith(int id) {
  117. Vertex returnVertex = null;
  118.  
  119. for(Vertex v : xmlVertex) {
  120. if(v.getVertex_ID() == id) {
  121. returnVertex = v;
  122. break;
  123. }
  124. }
  125.  
  126. return returnVertex;
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement