Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java数据结构创建xml字符串_Java - Fatal编程技术网

从java数据结构创建xml字符串

从java数据结构创建xml字符串,java,Java,我有3个数据结构 ArrayList空包 HashMap数据库元数据 databaseMetadata.put("NUM","1"); databaseMetadata.put("NAME","DAVE"); databaseMetadata.put("SAL",""); HashMap标记元数据 tagsTometadata.put("emp_no","NUM"); tagsTometadata.put("emp_name","NAME"); tagsTometadata.put("emp_

我有3个数据结构

ArrayList空包

HashMap数据库元数据

databaseMetadata.put("NUM","1");
databaseMetadata.put("NAME","DAVE");
databaseMetadata.put("SAL","");
HashMap标记元数据

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

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");
基于以上,我必须迭代list emptags对象,检索list中的每个元素,我必须从hashmap中获取元数据元素

tagsTometadata及其值来自databaseMetadata。最后,我必须构建以下xml:

<emp>

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

</emp>      

1.
戴夫
//因为没有价值

给你,这个程序有主类,只需即插即用。。。[确保更改文件路径]

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();
      }

   }
}
导入java.io.File;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Iterator;
导入java.util.Map;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.dom.DOMSource;
导入javax.xml.transform.stream.StreamResult;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
公共类数据
{
静态ArrayList emptags=新ArrayList();
静态HashMap databaseMetadata=新HashMap();
静态HashMap tagsTometadata=新HashMap();
公共空白填充(){
清空标签。添加(“emp_编号”);
清空标签。添加(“emp_名称”);
清空。添加(“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”);
}
公共静态void main(字符串参数[]){
数据d=新数据();
d、 填充();
系统输出打印项次(清空标签);
试一试{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
Document doc=docBuilder.newDocument();
元素rootElement=doc.createElement(“emp”);
doc.appendChild(rootElement);

对于(inti=0;i这里,这个程序有主类,只需即插即用…[确保更改文件路径]

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();
      }

   }
}
导入java.io.File;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Iterator;
导入java.util.Map;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.dom.DOMSource;
导入javax.xml.transform.stream.StreamResult;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
公共类数据
{
静态ArrayList emptags=新ArrayList();
静态HashMap databaseMetadata=新HashMap();
静态HashMap tagsTometadata=新HashMap();
公共空白填充(){
清空标签。添加(“emp_编号”);
清空标签。添加(“emp_名称”);
清空。添加(“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”);
}
公共静态void main(字符串参数[]){
数据d=新数据();
d、 填充();
系统输出打印项次(清空标签);
试一试{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
Document doc=docBuilder.newDocument();
元素rootElement=doc.createElement(“emp”);
doc.appendChild(rootElement);

对于(int i=0;i不用手工编写所有这些代码,您可以看看一些javaxml绑定工具,比如JAXB。我不太明白您的问题是什么?主题行的确切含义是什么,您的代码在上面显示了您的问题是什么?列表维护xml标记列表,一个hashmap维护数据库列名称和值,另一个hasmap维护数据库列名称和值ase列名称和xml元素名称。基于此,我必须构造xml@user2610401我已经尝试过一些东西,或者你只是想要一些代码?如果你尝试过一些东西,请发布你的代码,这样我们可以提供帮助。你可以看看一些javaxml绑定工具,比如JAXB,而不是手工编码。我不太明白你的问题是什么?什么实际上,你的主题行的意思是,你的代码在上面显示了你的问题是什么?列表维护xml标记列表,一个hashmap维护数据库列名和值,另一个hasmap维护数据库列名和xml元素名。基于此,我必须构建xml@user2610401我已经试过了,或者你只是想要密码?如果您尝试了一些方法,请发布您的代码,以便我们提供帮助。