Advertisement
Guest User

sax parser

a guest
Oct 24th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. package se.plushogskolan.jetbroker.plane.integration.airportws;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.ArrayList;
  6. import java.util.Collection;
  7. import java.util.List;
  8.  
  9. import javax.xml.parsers.ParserConfigurationException;
  10. import javax.xml.parsers.SAXParser;
  11. import javax.xml.parsers.SAXParserFactory;
  12.  
  13. import org.xml.sax.Attributes;
  14. import org.xml.sax.SAXException;
  15. import org.xml.sax.helpers.DefaultHandler;
  16.  
  17. import se.plushogskolan.jee.utils.integration.FailedIntegrationConnectionException;
  18. import se.plushogskolan.jetbroker.plane.domain.Airport;
  19. import se.plushogskolan.jetbroker.plane.integration.airportws.stubs.AirportSoap;
  20.  
  21. public class AirportWebserviceImpl implements AirportWebservice {
  22.  
  23. @Override
  24. public Collection<Airport> getAllAirports()
  25. throws FailedIntegrationConnectionException {
  26. se.plushogskolan.jetbroker.plane.integration.airportws.stubs.Airport airport = new se.plushogskolan.jetbroker.plane.integration.airportws.stubs.Airport();
  27. AirportSoap port = airport.getAirportSoap();
  28. String xmlDataAsString = port.getAirportInformationByCountry("sweden");
  29. SAXParserFactory factory = SAXParserFactory.newInstance();
  30. factory.setValidating(true);
  31. factory.setNamespaceAware(false);
  32. SAXParser parser = null;
  33.  
  34. try {
  35. parser = factory.newSAXParser();
  36. } catch (ParserConfigurationException e) {
  37. e.printStackTrace();
  38. } catch (SAXException e) {
  39. e.printStackTrace();
  40. }
  41. InputStream is = SAXParser.class.getResourceAsStream(xmlDataAsString);
  42.  
  43. MyHandler handler = new MyHandler();
  44. try {
  45. parser.parse(is, handler);
  46. } catch (SAXException e) {
  47. // TODO Auto-generated catch block
  48. e.printStackTrace();
  49. } catch (IOException e) {
  50. // TODO Auto-generated catch block
  51. e.printStackTrace();
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58. return null;
  59. }
  60. static class MyHandler extends DefaultHandler{
  61.  
  62. boolean isAirport;
  63. boolean isAirportCode;
  64. boolean isLongitudeDegree;
  65. boolean isLatitudeDegree;
  66. boolean isLongitudeMinute;
  67. boolean isLatitudeMinute;
  68. boolean isAirportName;
  69.  
  70. private Airport airport;
  71. private List<Airport> airports = new ArrayList<Airport>();
  72.  
  73. private String currentTextValue;
  74. private String longitude = "";
  75. private String latitude = "";
  76.  
  77.  
  78.  
  79. public void characters(char[] ch, int start, int len) throws SAXException {
  80. currentTextValue = new String(ch, start, len);
  81. }
  82.  
  83.  
  84.  
  85. public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
  86.  
  87. if (qName.equals("Table")) {
  88. airport = new Airport();
  89. isAirport=true;
  90. } else if (qName.equals("AirportCode")) {
  91. isAirportCode = true;
  92. } else if (qName.equals("CityOrAirportName")) {
  93. isAirportName = true;
  94. } else if (qName.equals("LatitudeDegree")) {
  95. isLatitudeDegree = true;
  96. } else if (qName.equals("LatitudeMinute")) {
  97. isLatitudeMinute = true;
  98. } else if (qName.equals("LongitudeDegree")) {
  99. isLongitudeDegree = true;
  100. } else if (qName.equals("LongitudeMinute")) {
  101. isLongitudeMinute = true;
  102. }
  103.  
  104. }
  105.  
  106. public void endElement(String uri, String localName, String qName) throws SAXException {
  107. if (qName.equals("Table")) {
  108. airport.setLatitude(Double.parseDouble(latitude));
  109. airport.setLongitude(Double.parseDouble(longitude));
  110. longitude = "";
  111. latitude = "";
  112. airports.add(airport);
  113. isAirport = false;
  114. } else if (qName.equals("AirportCode")) {
  115. airport.setCode(currentTextValue);
  116. isAirportCode = false;
  117. } else if (qName.equals("CityOrAirportName")) {
  118. airport.setName(currentTextValue);
  119. isAirportName = false;
  120. } else if (qName.equals("LatitudeDegree")) {
  121. latitude = currentTextValue;
  122. isLatitudeDegree = false;
  123. } else if (qName.equals("LatitudeMinute")) {
  124. latitude = latitude+"."+currentTextValue;
  125. isLatitudeMinute = false;
  126. } else if (qName.equals("LongitudeDegree")) {
  127. longitude = currentTextValue;
  128. isLongitudeDegree = false;
  129. } else if (qName.equals("LongitudeMinute")) {
  130. longitude = longitude+"."+currentTextValue;
  131. isLongitudeMinute = false;
  132. }
  133.  
  134. }
  135.  
  136.  
  137.  
  138. }
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement