• 把key-value键值对的数据转换成xml格式,并根据key来匹配元素


    import java.util.HashMap;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    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 KeyValueToXmlConverter {
        
        public static void main(String[] args) {
            // 示例数据
            Map data = new HashMap<>();
            data.put("person", Map.of("name", "John", "age", 30, "email", "john@example.com"));
            data.put("company", Map.of("name", "ABC Inc.", "address", "123 Main St", "website", "https://www.example.com"));
            
            String xml = convertToXml(data);
            System.out.println(xml);
        }
        
        public static String convertToXml(Map data) {
            try {
                DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
                Document doc = docBuilder.newDocument();
                
                Element root = doc.createElement("root");
                doc.appendChild(root);
                
                for (Map.Entry entry : data.entrySet()) {
                    String key = entry.getKey();
                    Object value = entry.getValue();
                    
                    Element element = doc.createElement(key);
                    root.appendChild(element);
                    
                    if (value instanceof Map) {
                        Map subData = (Map) value;
                        for (Map.Entry subEntry : subData.entrySet()) {
                            String subKey = subEntry.getKey().toString();
                            Object subValue = subEntry.getValue();
                            
                            Element subElement = doc.createElement(subKey);
                            subElement.appendChild(doc.createTextNode(subValue.toString()));
                            element.appendChild(subElement);
                        }
                    } else {
                        element.appendChild(doc.createTextNode(value.toString()));
                    }
                }
                
                TransformerFactory transformerFactory = TransformerFactory.newInstance();
                Transformer transformer = transformerFactory.newTransformer();
                transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                
                DOMSource source = new DOMSource(doc);
                StreamResult result = new StreamResult(new StringBuilder());
                transformer.transform(source, result);
                
                return result.getWriter().toString();
                
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return null;
        }
    }

    运行以上代码,将会输出转换后的XML字符串。

    注意:上述示例只是简单演示了如何将key-value键值对的数据转换为XML格式,并根据key来匹配元素。在实际应用中,可能需要根据需求对数据结构和元素的创建进行更复杂的处理。

  • 相关阅读:
    [附源码]SSM计算机毕业设计中达小区物业管理系统JAVA
    GPT4应用讲解,如何获取ChatGPT账号
    MySQL——常见问题
    跟运维学 Linux - 03
    python零基础看完必会安装和配置环境,文末附下载安装包
    2022-7-15 java 数据结构入门
    【数据库】你听说过矢量数据库吗?
    新生儿黄疸:原因、科普和注意事项
    开源机器学习软件对AI的发展意味着什么?
    鸿蒙HarmonyOS应用开发:扫描仪文件扫描
  • 原文地址:https://blog.csdn.net/m0_62820470/article/details/132626694