1

I have 3 data structures

ArrayList emptags

HashMap databaseMetadata

HashMap tagsTometadata

emptags contains

emptags.add("emp_no");

emptags.add("emp_name");

emptags.add("emp_sal");

databaseMetadata

databaseMetadata.put("NUM","1");
databaseMetadata.put("NAME","DAVE");
databaseMetadata.put("SAL","");

tagsTometadata

tagsTometadata.put("emp_no","NUM");
tagsTometadata.put("emp_name","NAME");
tagsTometadata.put("emp_sal","SAL");

Based on above,I have to iterate list emptags object,retrieval of each elemnet in list i have to get the metadata element from hashmap

tagsTometadata and it's value from databaseMetadata.finally i have to construct below xml:

<emp>

  <emp_no>1</emp_no>
  <emp_name>DAVE</emp_name>
  <emp_sal/> //because there is no value

</emp>      
5
  • Instead of hand-coding all this, you can look at some java<->xml binding tools like JAXB. Commented Jul 24, 2013 at 14:56
  • 1
    I don't quite undestand what is your problem ? Commented Jul 24, 2013 at 15:06
  • what exactly your subject line means and your code show on top of it what is your question? Commented Jul 24, 2013 at 15:09
  • List maintains list of xml tags,one hashmap maintains database column name and value,one more hasmap maintains database column name and xml element name.based on this i have to constuct xml Commented Jul 24, 2013 at 15:14
  • @user2610401 I've you tried something or you're just asking for the code? If you've tried something please post your code so we can help. Commented Jul 24, 2013 at 15:35

1 Answer 1

1

Here you go, This program has the main class, just plug and play... [Make sure to change the file path]

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Datas
{
   static ArrayList<String> emptags = new ArrayList<String>();

   static HashMap<String, String> databaseMetadata = new HashMap<String, String>();

   static HashMap<String, String> tagsTometadata = new HashMap<String, String>();

   public void populate(){
      emptags.add("emp_no");

      emptags.add("emp_name");

      emptags.add("emp_sal");



      databaseMetadata.put("NUM","1");
      databaseMetadata.put("NAME","DAVE");
      databaseMetadata.put("SAL","");



      tagsTometadata.put("emp_no","NUM");
      tagsTometadata.put("emp_name","NAME");
      tagsTometadata.put("emp_sal","SAL");
   }

   public static void main(String args[]){
      Datas d = new Datas();
      d.populate();
      System.out.println(emptags);
      try{
         DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
         Document doc = docBuilder.newDocument();
         Element rootElement = doc.createElement("emp");
         doc.appendChild(rootElement);
         for(int i=0;i<emptags.size();i++){
            Element newElement = doc.createElement(emptags.get(i));
            if(tagsTometadata.containsKey(emptags.get(i))){
               if(databaseMetadata.containsKey(tagsTometadata.get(emptags.get(i)))){
                  newElement.appendChild(doc.createTextNode(databaseMetadata.get(tagsTometadata.get(emptags.get(i)))));
               }
            }

            rootElement.appendChild(newElement);
         }
         TransformerFactory transformerFactory = TransformerFactory.newInstance();
         Transformer transformer = transformerFactory.newTransformer();
         DOMSource source = new DOMSource(doc);
         StreamResult result = new StreamResult(new File("C:\\users\\Arun\\Desktop\\file1.xml"));

         // Output to console for testing
         // StreamResult result = new StreamResult(System.out);

         transformer.transform(source, result);

         System.out.println("File saved!");

      }
      catch(Exception e){
         e.printStackTrace();
      }

   }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.