XMLParser 使用
来源:互联网 发布:北京日报新闻网络热线 编辑:程序博客网 时间:2024/06/05 20:07
XMLParser 工具类
import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import com.thoughtworks.xstream.XStream;public class XMLParser { public static Map<String, Object> getMapFromXML(String xmlString) throws ParserConfigurationException, IOException, SAXException { // 这里用Dom的方式解析回包的最主要目的是防止API新增回包字段 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputStream is = Util.getStringStream(xmlString); Document document = builder.parse(is); // 获取到document里面的全部结点 NodeList allNodes = document.getFirstChild().getChildNodes(); Node node; Map<String, Object> map = new HashMap<String, Object>(); int i = 0; while (i < allNodes.getLength()) { node = allNodes.item(i); if (node instanceof Element) { map.put(node.getNodeName(), node.getTextContent()); } i++; } return map; } public static Object getObjectFromXML(String xml, Class<?> tClass) { // 将从API返回的XML数据映射到Java对象 XStream xStreamForResponseData = new XStream(); xStreamForResponseData.alias("xml", tClass); // xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段 return xStreamForResponseData.fromXML(xml); } public static Object getObjectFromXML(String xml, String rootName, Class<?> tClass) { // 将从API返回的XML数据映射到Java对象 XStream xStreamForResponseData = new XStream(); xStreamForResponseData.alias(rootName, tClass); // xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段 return xStreamForResponseData.fromXML(xml); } public static void main(String[] args) { Map<String, Object> map=new HashMap<String, Object>(); String xmlstr="<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml> "; try { map=getMapFromXML(xmlstr); System.out.println(map); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
XmlJSON 工具类
import net.sf.json.JSONObject;import net.sf.json.xml.XMLSerializer;public class XmlJSON { public static String xmlToJson(String xml) { XMLSerializer serializer = new XMLSerializer(); return serializer.read(xml).toString(); } public static String jsonToXML(String json) { JSONObject jobj = JSONObject.fromObject(json); XMLSerializer xmlSerializer = new XMLSerializer(); // 根节点名称 xmlSerializer.setRootName("xml"); // 不对类型进行设置 xmlSerializer.setTypeHintsEnabled(false); String xmlStr=xmlSerializer.write(jobj); xmlStr=xmlStr.split("\r\n")[1]; log.info("转换后的参数:"+xmlStr); return xmlStr; }}
1 0
- XMLParser 使用
- xmlParser
- Unity中XMLParser的使用
- Unity3D Mono.Xml和XmlParser的使用
- 使用Groovy XmlParser 解析XML示例
- [xmlparser]Code-XMLParser
- UI - XMLParser
- XMLParser 详解
- 使用Java StAX API(XML Stream Process API)写的XMLParser
- [xmlparser]Code-Node
- [xmlparser]Code-Attribute&AttributeList
- [xmlparser]Code-XMLDocument
- [xmlparser]Code-Lexer
- [xmlparser]Code-Test
- 黑莓之xmlParser
- XmlParser和HtmlParser
- XmlParser和HtmlParser
- Java XMLParser chunck 问题参考
- 《编写可维护的JavaScript》读书笔记——3.语句和表达式
- leetcode:数学:spuer pow(372)
- You are using safe update mode and you tried to update a table without a WHERE that uses a KEY colum
- Centos javaMail 邮件无法发出
- 微信公众平台开发,微信JS-SDK对接invalid signature报错解决
- XMLParser 使用
- spring bean对象的声明周期
- 性能測試——并发用户数估算
- okhttp3 StrictMode Error
- 前端面试题 之 JavaScript
- 直播技术知识库发布
- Unity3D - Unity协程(Coroutine)原理深入剖析
- 欢迎使用CSDN-markdown编辑器
- 远控开发记录07_自定义listview