Build CSV file from XML Data - Bean


	// run program/button code
	public void getKeywords() {
		// Set up column and data variables
		String columnName = "";
		String dataOutput = "";

		// entering try catch
		try {
			// set up document read/build
			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
			// read the file into the program
			Document doc = docBuilder.parse(new File(
					"C://temp/XML_DATA/data.xml"));

			// normalize text representation
			doc.getDocumentElement().normalize();
			System.out.println("Root element of the doc is "
					+ doc.getDocumentElement().getNodeName());

			// ...
			//Get count of values per tags
			NodeList listOfSites = doc.getElementsByTagName("person");
			// perform count of documents retrieved
			int totalSites = listOfSites.getLength();
			System.out.println("Total number of sites/customers : " + totalSites);

			//loop through sites and fill nodes
			for (int s = 0; s < listOfSites.getLength(); s++) {

				//...
				//Set up siteNode to gather data into elements
				Node siteNode = listOfSites.item(s);
				if (siteNode.getNodeType() == Node.ELEMENT_NODE) {

					//...
					Element siteElement = (Element) siteNode;

					//...
					//load to respective elements
					NodeList siteNameList = siteElement
							.getElementsByTagName("sitename");
					Element siteNameElement = (Element) siteNameList.item(0);

					//...
					//feed values outbound via each element
					NodeList textSiteNameList = siteNameElement.getChildNodes();
					System.out
							.println("SiteName : "
									+ ((Node) textSiteNameList.item(0))
											.getNodeValue().trim());
					//...
					//load to respective elements
					NodeList siteNumberList = siteElement
							.getElementsByTagName("sitenumber");
					Element siteNumberElement = (Element) siteNumberList.item(0);

					//...
					//feed values outbound via each element
					NodeList textSiteNumberList = siteNumberElement.getChildNodes();
					System.out
							.println("SiteNumber : "
									+ ((Node) textSiteNumberList.item(0))
											.getNodeValue().trim());

					// load results to ColumnNames bound for CSV file
					String SiteName = (((Node) textSiteNameList.item(0))
							.getNodeValue().trim());
					String SiteNumber = (((Node) textSiteNumberList.item(0))
							.getNodeValue().trim());
					// pre-arrange column values for CSV file
					columnName = "SiteName" + "," + "SiteNumber" + "\n"; // ...
					// load values to columns set up
					dataOutput = dataOutput + SiteName + "," + SiteNumber
							+ "\n";
					// add debug messages
					System.out.println("This is for Debugging measures: "
							+ columnName + dataOutput);
					// ...
					// Instantiate file location...
					DataOutputStream outBound = new DataOutputStream(
							new BufferedOutputStream(
									new FileOutputStream(
											"c:/temp/CSV_DATA/UserNewLineOutboundInformation.csv")));
					// write data into columns set up
					outBound.writeBytes(columnName + dataOutput);
					// ...
					//close the writer
					outBound.close();

				}

			}

		} catch (SAXParseException err) {
			System.out.println("** Parsing error" + ", line "
					+ err.getLineNumber() + ", uri " + err.getSystemId());
			System.out.println(" " + err.getMessage());

		} catch (SAXException e) {
			Exception x = e.getException();
			((x == null) ? e : x).printStackTrace();

		} catch (Throwable t) {
			t.printStackTrace();
		}

	}// end of program
All code submitted to OpenNTF XSnippets, whether submitted as a "Snippet" or in the body of a Comment, is provided under the Apache License Version 2.0. See Terms of Use for full details.
No comments yetLogin first to comment...