[英]creating xml string from java data structures
I have 3 data structures 我有3个数据结构
ArrayList emptags ArrayList清空
HashMap databaseMetadata HashMap数据库元数据
HashMap tagsTometadata HashMap标签
emptags contains emptags包含
emptags.add("emp_no");
emptags.add("emp_name");
emptags.add("emp_sal");
databaseMetadata DatabaseMetaData的
databaseMetadata.put("NUM","1");
databaseMetadata.put("NAME","DAVE");
databaseMetadata.put("SAL","");
tagsTometadata 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 基于以上,我必须迭代列表emptags对象,列表中每个elemnet的检索我必须从hashmap获取元数据元素
tagsTometadata and it's value from databaseMetadata.finally i have to construct below xml: tagsTometadata及其来自databaseMetadata.final的值最后我必须在xml之下构建:
<emp>
<emp_no>1</emp_no>
<emp_name>DAVE</emp_name>
<emp_sal/> //because there is no value
</emp>
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();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.