java解析xml字符串 后 组装成map形式,求大神

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java解析xml字符串 后 组装成map形式,求大神相关的知识,希望对你有一定的参考价值。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test>
<t>
<entry>
<key>1</key>
<value>你</value>
</entry><entry>
<key>2</key>
<value>是</value>
</entry>
<entry>
<key>3</key>
<value>谁</value>
</entry>
</t>
</test>
对上面的节点key,value解析后放到Map里面
1=你, 2=是,3=谁
=====================

参考技术A java html(XML)解析工具jsoup:
说明:使用起来非常简单,就先jquery的dom操作一样方便,jsoup 是一款Java 的HTML、XML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。使用它来做解析非常简单方便。

jsoup中文参考文档:
http://www.open-open.com/jsoup/
参考技术B package test;

import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class JButtonTest

public static void main ( String[] args )

String regex = "\\\\<key\\\\>([^\\\\<]*)\\\\<\\\\/key\\\\>[^\\\\<]*\\\\<value\\\\>([^\\\\<]*)\\\\<\\\\/value\\\\>";
String input = "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" standalone=\\"yes\\"?>\\r\\n<test>\\r\\n<t>\\r\\n<entry>\\r\\n<key>1</key>\\r\\n<value>你</value>\\r\\n</entry><entry>\\r\\n<key>2</key>\\r\\n<value>是</value>\\r\\n</entry>\\r\\n<entry>\\r\\n<key>3</key>\\r\\n<value>谁</value>\\r\\n</entry>\\r\\n</t>\\r\\n</test>";
Pattern pattern = Pattern.compile (regex);
Matcher matcher = pattern.matcher (input);
HashMap<String, String> map = new HashMap<String, String> ();
while (matcher.find ())

map.put (matcher.group (1), matcher.group (2));


System.out.println (map);

参考技术C xml首先转换为map,然后新建一个map用于存储你所需要的结构,

具体实现可以看以下链接,
http://blog.csdn.net/u011490355/article/details/77775544
参考技术D SAX解析XML还是比较好的,可以百度下 第5个回答  2015-01-27 请问这个xml的在项目中的位置追问

是xml字符串 不是文件

追答

Map map = new HashMap();
Document doc = null;
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Element t=(Element)rootElt.node(0);
Iterator iter = t.elementIterator(); // 获取t节点下的子节点
while (iter.hasNext())
Element recordEle = (Element) iter.next();
String key = recordEle.elementTextTrim("key"); // 拿到t节点下的子节点entry的key值
String value = recordEle.elementTextTrim("value"); // 拿到t节点下的子节点entry的value值
System.out.println("key:" + key+"value:"+value);
map.put(key, value);

本回答被提问者采纳

以上是关于java解析xml字符串 后 组装成map形式,求大神的主要内容,如果未能解决你的问题,请参考以下文章

[ java 工具类] xml字符串解析成Map(DOM解析)

java XML解析成Map

Java文件解析xml文件转成 map

js解析后台map转成的json方法

Java解析XML文件

将xml字符串的所有叶标签转换成Map集合