Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java解析xml字符串转为map

作者:恋你如初   发布日期:2025-10-15   浏览:81

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import java.util.*;

public class XMLStringToMap {

    public static Map<String, String> xmlStringToMap(String xml) {
        Map<String, String> map = new HashMap<>();
        try {
            // 创建一个DocumentBuilderFactory对象
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            // 创建一个DocumentBuilder对象
            DocumentBuilder builder = factory.newDocumentBuilder();
            // 将XML字符串转换为输入流
            InputStream inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
            // 解析XML文档,生成Document对象
            Document document = builder.parse(inputStream);
            // 获取文档的根元素
            Element root = document.getDocumentElement();
            // 遍历根元素的所有子节点
            NodeList nodeList = root.getChildNodes();
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                if (node instanceof Element) {
                    // 获取元素的标签名和文本内容,并存入map中
                    map.put(node.getNodeName(), node.getTextContent());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }

    public static void main(String[] args) {
        String xml = "<root><name>John</name><age>30</age><city>New York</city></root>";
        Map<String, String> map = xmlStringToMap(xml);
        System.out.println(map);
    }
}

解释说明:

  1. DocumentBuilderFactory 和 DocumentBuilder:用于解析XML字符串。DocumentBuilderFactory是工厂类,负责创建DocumentBuilder实例。DocumentBuilder用于将XML字符串解析成Document对象。
  2. ByteArrayInputStream:将XML字符串转换为字节输入流,以便DocumentBuilder可以解析它。
  3. Document 对象:表示整个XML文档的树结构,可以通过它获取根元素和其他节点。
  4. NodeList 和 NodeNodeList表示XML文档中的节点列表,Node表示单个节点。通过遍历NodeList,可以提取每个元素的标签名和文本内容。
  5. Map 存储:将每个元素的标签名作为键,文本内容作为值存储到Map中。

这个示例代码将给定的XML字符串解析为一个Map<String, String>,其中键是XML元素的标签名,值是对应的文本内容。

上一篇:java单元测试工具

下一篇:java队列queue使用场景

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站