解析xml参数并返回xml格式数据

解析xml参数并返回xml格式数据
本文介绍接口xml参数解析,以及查询数据后返回xml数据。
1、xml参数如下:
解析xml参数并返回xml格式数据_第1张图片
2、解析参数

  //将字符串转换为XML
  Document doc=DocumentHelper.parseText(userInfo);
		  //获取根节点
		  Element rootElt = doc.getRootElement(); 
		  //获取子节点迭代器
		  Iterator  iter=rootElt.elementIterator();
		  String userId="";
		  String userName="";
		  while(iter.hasNext()){
			  //获取子节点
			  Element el1=(Element)iter.next();
			  //获取子节点存放值的list
			  List<DefaultText> data=el1.content();
			  String name=el1.getName();
			  String text="";
			 for (DefaultText defaultText : data) {
				 //获取子节点的值
				 text=defaultText.getText();
			   }
			 //判断当前节点名称
			 if(name.equals("userID")){
				 userId=text;
			 }else{
				 userName=text;
			 } 
			 
		  } 
 
  

3、根据实际需求查出list
4、要求返回的xml格式



< projectBM>BM001 < /projectBM>
< projectID>0001 < /projectID>
< projectName> test1< /projectName>


BM002
0002
test2


4、编写转换方法

   /**
     * Json to xmlstr string.
     *
     * @param jObj   the j obj
     * @param buffer the buffer
     * @return the string
     */
    public static StringBuffer jsonToXmlstr(JSONObject jObj,StringBuffer buffer ){
        Set> se = jObj.entrySet();
        for(Iterator> it = se.iterator(); it.hasNext(); )
        {
            Map.Entry en = it.next();
            if(en.getValue().getClass().getName().equals("com.alibaba.fastjson.JSONObject")){
                buffer.append("<"+en.getKey()+">");
                JSONObject jo = jObj.getJSONObject(en.getKey());
                jsonToXmlstr(jo,buffer);
                buffer.append("");
            }else if(en.getValue().getClass().getName().equals("com.alibaba.fastjson.JSONArray")){
                JSONArray jarray = jObj.getJSONArray(en.getKey());
                for (int i = 0; i < jarray.size(); i++) {
                    buffer.append("<"+en.getKey()+">");
                    JSONObject jsonobject =  jarray.getJSONObject(i);
                    jsonToXmlstr(jsonobject,buffer);
                    buffer.append("");
                }
            }else if(en.getValue().getClass().getName().equals("java.lang.String")){
                buffer.append("<"+en.getKey()+">"+en.getValue());
                buffer.append("");
            }
        }
        return buffer;
    }
	

5、封装成xml数据返回,这里导入包为import org.dom4j.*相关包。

	         Document document = DocumentHelper.createDocument();
			 document.setXMLEncoding("utf-8");	 
			JSONArray jsonArr = JSONArray.fromObject(list);
			 StringBuffer buffer = new StringBuffer();
			 //拼接xml的声明及父标签
	         buffer.append("
	         //循环list数据
			for(int i=0;i");
            JSONObject jsonObject=(JSONObject)jsonArr.get(i);
				//动态根据数据拼接标签
		        buffer=jsonToXmlstr(jsonObject,buffer);
		        buffer.append("");	
			}
			//拼接父标签结束标签
			buffer.append("");

6、返回结果如下图:
解析xml参数并返回xml格式数据_第2张图片

你可能感兴趣的:(javaee)