全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

java解析xml字符串转为map怎么操作

问题描述:java解析xml字符串转为map怎么操作

推荐答案 本回答由问问达人推荐

  要在Java中解析XML字符串并将其转换为Map,可以使用Java的内置XML解析库,如DOM或SAX解析器。下面是一种使用DOM解析器的方法来实现:

千锋教育

  javaimport org.w3c.dom.*;

  import javax.xml.parsers.*;

  import java.io.*;

  import java.util.*;

  public class XMLParserExample {

  public static void main(String[] args) {

  String xmlString = "John Doe30";

  try {

  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

  DocumentBuilder builder = factory.newDocumentBuilder();

  InputStream stream = new ByteArrayInputStream(xmlString.getBytes());

  Document document = builder.parse(stream);

  Element rootElement = document.getDocumentElement();

  Map resultMap = parseElement(rootElement);

  // 输出解析结果

  for (Map.Entry entry : resultMap.entrySet()) {

  System.out.println(entry.getKey() + ": " + entry.getValue());

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  private static Map parseElement(Element element) {

  Map map = new HashMap<>();

  NodeList nodes = element.getChildNodes();

  for (int i = 0; i < nodes.getLength(); i++) {

  Node node = nodes.item(i);

  if (node.getNodeType() == Node.ELEMENT_NODE) {

  Element childElement = (Element) node;

  String key = childElement.getNodeName();

  String value = childElement.getTextContent();

  map.put(key, value);

  }

  }

  return map;

  }

  }

 

  在这个示例中,我们首先创建了一个用于解析XML的DocumentBuilder对象。然后,我们将XML字符串转换为输入流,并使用DocumentBuilder的parse()方法将其解析为Document对象。

  接下来,我们获取根元素,并使用自定义的parseElement()方法递归解析XML的每个元素。在parseElement()方法中,我们遍历所有子节点,并提取元素的名称和内容,然后将其添加到Map中。

  最后,我们输出Map的内容,以验证转换结果。

  请注意,这只是一种使用DOM解析器的方法。你还可以尝试使用SAX解析器或其他第三方库,如JAXB或XStream,来解析XML并将其转换为Map。选择适合你需求和偏好的方法,并进行适当的错误处理和异常处理。

查看其它两个剩余回答
在线咨询 免费试学 教程领取