public static boolean getSemaphoresData(String pathName) {
		DocumentBuilderFactory docBuilderFactory;
		DocumentBuilder docBuilder;
		Document document = null;
		try {

			docBuilderFactory = DocumentBuilderFactory.newInstance();
			docBuilder = docBuilderFactory.newDocumentBuilder();

			document = docBuilder.parse(new File(pathName));
			document.getDocumentElement().normalize();

		} catch (ParserConfigurationException e) {
			System.err.println("XML Format error.");
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			System.err.println("Write/Read error.");
			e.printStackTrace();
			return false;
		} catch (SAXException e) {
			System.err.println("SAXException.");
			e.printStackTrace();
			return false;
		}

		NodeList names = document.getElementsByTagName("name");
		NodeList times = document.getElementsByTagName("value");
		NodeList coordinates = document.getElementsByTagName("coordinates");

		ArrayList<String> sNames = new ArrayList<String>();
		ArrayList<String[]> sTimes = new ArrayList<String[]>();
		ArrayList<String[]> sCoordinates = new ArrayList<String[]>();

		int j = 0;
		int k = 0;

		for (int i = 0; i < names.getLength(); i++) {
			if (names.item(i).getParentNode().getNodeName() == "Placemark"
					|| coordinates.item(i).getParentNode().getNodeName() == "Placemark") {
				sNames.add(names.item(i).getTextContent());
				sCoordinates.add(coordinates.item(j).getTextContent()
						.split(","));
				sTimes.add(new String[]{times.item(k).getTextContent(),
						times.item(++k).getTextContent()});

				if (sTimes.get(sTimes.size() - 1)[0].equals("")) {
					sTimes.get(sTimes.size() - 1)[0] = "0";
				}

				if (sTimes.get(sTimes.size() - 1)[1].equals("")) {
					sTimes.get(sTimes.size() - 1)[1] = "0";
				}

				k++;
				j++;
			}
		}
		return IOFiles.writeSemaphoresFile("cleanData/semaphoresData.txt",
				sNames, sTimes, sCoordinates);
	}