`
tw5566
  • 浏览: 460823 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Map与XML的转换收藏

    博客分类:
  • java
阅读更多
map的数据结构类似于数据库的数据存储方式,键和值的对应,之间的映射,更重要的一点是通过map.entry这个类似于指针的接口在外部对其进行任意的修改。在这里我们通过一个动态生成树的例子介绍一下它的用法吧...

网页中,树型目录菜单是一个很常见的菜单显示方式,通常我们都是利用已经设置好的数据通过客户端脚本拼装后展现,在树的结构比较简单或要求显示效果绚丽的话,是一个很好的选择。如果我们的树型目录是一个不断变化的树呢,比如用树来显示一个部门的所有员工的在线状态?

这时我们就需要考虑用后台实现了,通过map,我们假设它的key对应的是树的目录名称,key对应它的链接地址。如果有下级目录,则把该目录再封装到一个新的map中,作为主map的一个节点。这样就可以使用一个主map展现目录的所有内容了。

代码贴出来吧,发现这里的html代码编辑功能实在太差了-_-!!.

      /**
         * 列出树型列表的所有元素
         * 该方法将把所有节点的元素展开,如果需要,应该在前台进行重新包装
         * 这里要注意的是map的实现类要为TreeMap,其他类型的话,要修改
         * equals(TreeMap.class) ,下面的另一个方法同理   
         * @param map
         * @return
         */
public static  String getType(Map map) {
Set set = map.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {// 把当前要遍历的节点当作根节点
     Map.Entry entry = (Map.Entry) it.next();
     if (entry.getValue().getClass().equals(TreeMap.class)) {// 下一级节点
        System.out.println(entry.getKey());// 读取该节点的名称
        getType((TreeMap) entry.getValue());
       } else {// 到达该节点的顶点
         System.out.println(entry.getKey() + ":" + entry.getValue());
      }
  }
     return null;
}

    利用迭代的方法可以写出取某节点下的所有内容、指定节点的内容等功能,方法大同小异,这里不敷述了。map的数据来源可以是多样的,最主要的是从数据库中取得数据,对于map如何和数据库数据进行映射,网上应该资料很多,关键在于把所需要的数据先包装到一个bo中,再对map进行填充。目前hibernate应该是不个不错的选择。
   map于xml的转换,其实也是很简单的:

     /**
         * 将map类型数据转换成XML文档
         *
         * @param map
         *                该节点
         * @param element
         *                上一级节点
         * @return
         */
public void parseToXML(Map map, Element element) {
/** 开始对map进行解析 */
if (map == null)
     throw new NullPointerException("map 数据为空,不能解析!");
Set set = map.entrySet();
Iterator records = set.iterator();
while (records.hasNext()) {
       Map.Entry entry = (Map.Entry) records.next();
       if (entry.getValue().getClass().equals(TreeMap.class)) {// 子目录
        Element node = new Element("node");
        node.setAttribute("name", entry.getKey().toString());
        element.addContent(node);
        parseToXML((TreeMap) entry.getValue(), node);
       } else {// 到达顶点
              Element node = new Element("node");
              node.setAttribute("name", entry.getKey().toString());
              Element value = new Element("value");
              value.setText(entry.getValue().toString());
              node.addContent(value);
              element.addContent(node);
     }
  }
}
注意的是element是需要获取的,当我们声明了一个xml doc文档后,根节点root可以作为参数传进去,处理完后,再对root进行读取就可以了:

  parseToXML(map, root);
  doc = new Document(root);
这样我们就可以把map转换成一个树型目录了,具体的应用,随意了。
分享到:
评论

相关推荐

    Map转换成xml

    在Java编程中,将数据结构如`Map`转换为XML格式是一种常见的需求,尤其是在处理配置文件、数据交换或与Web服务交互时。以下是对如何实现这一转换的深入解析,涵盖了代码逻辑、关键步骤以及可能遇到的问题。 #### 一...

    java一键xml转map,一键map转xml工具类

    总结来说,`EasyXmlUtil`是一个实用的Java工具类,它封装了XML与Map之间的相互转换功能,使得开发者能方便快捷地处理这两种数据格式。通过理解和使用此类,可以提高开发效率,简化数据处理的复杂性。在项目中,只需...

    java将xml串转换成Map类型

    将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map

    java转换xml、list、map和json

    "java转换xml、list、map和json" ...本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点,包括xml和map之间的转换、xml和list之间的转换、xml和json之间的转换、map和json之间的转换等。

    Java xml转化为map

    - Apache Commons Digester库提供了一种规则驱动的方式来将XML转换为Map,通过定义匹配规则,当匹配到XML中的某个模式时,它会调用相应的处理方法。 4. **自定义转换器**: - 如果XML结构复杂,也可以自定义转换...

    xml与map相互转换

    xml与map转换 这个应用的情况并不多见,一般都在两个系统间沟通的时候会有xml和json的相互转换。因为map和json是天生可相互转换的,所以这里只有xml能和map进行转换,那json就不是问题了。

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    在Java编程中,数据结构与XML(eXtensible Markup ...通过实践这些示例,你可以更好地理解并掌握Map和List与XML之间的转换技巧。在进行这样的转换时,确保处理好异常、空值和特殊字符,以确保数据的完整性和安全性。

    java xml和map互转

    将XML与Map进行互转是常见的需求,特别是在处理配置文件或者进行数据序列化时。本篇文章将详细介绍如何使用DOM4J库来实现XML和Map之间的转换,并讨论带有属性、无属性、有根节点和无根节点的情况。 DOM4J是一个强大...

    Jackson 框架JSON、XML、List、Map直接相互转换

    NULL 博文链接:https://bugyun.iteye.com/blog/2278997

    xml2map:XML到MAP转换器的Golang编写

    XML到MAP转换器的Golang编写的转换器 有时需要表示以前未知的结构。 这种通用表示形式通常是JSON,XML或数据映射结构形式的字符串。 类似于map [string] interface {}或map [interface {}] interface {}。 这是从...

    jaxb xml 转map

    将XML转换为Map可以使数据处理更加灵活,因为Map的键值对形式非常适合存储和操作键标识的数据。 首先,我们需要了解JAXB的基本用法。JAXB的工作原理是基于Java类来生成XML schema,或者反过来基于XML schema生成...

    解析xml文件-转换map新增数据库

    解析xml文件-转换map新增数据库解析xml文件-转换map新增数据库

    将xml字符串与map互转

    这是一个很好用的工具栏,可以将xml字符串转换成map,或者将Map集合转换为xml字符串

    Java xml 转 map

    将XML转换为Map,主要是为了方便数据处理和操作。这个过程通常涉及到XML解析和数据映射。 在描述中提到的“递归 XML 转 MAP”,是指XML文档可能存在嵌套结构,递归方法是处理这种结构的有效手段。递归意味着函数...

    MAP<---&gt;XML格式互相转换接口,已封装,可直接使用(java版)

    在Java开发中,数据结构的转换是常见的任务之一,例如将Map对象转换为XML格式的字符串,或者将...使用时,只需简单地调用提供的方法,就能轻松实现Map与XML之间的转换,简化了开发流程,提高了代码的可读性和可维护性。

    java转换xml、list、map和json.docx

    - json-lib库是进行JSON与XML转换常用的库,依赖的jar包包括`json-lib-2.3-jdk15.jar`等。 - 其他依赖如`commons-beanutils`、`commons-collections`、`commons-lang`、`commons-logging`和`xom`等,都是为了支持...

    java转换xml、list、map和json.pdf

    2. **Map到XML转换**: - `doc2String()`方法(未在代码中显示)应该是将`Document`对象转换为字符串的方法,通常会使用`OutputFormat`和`XMLWriter`来格式化输出的XML字符串。 3. **XML到List转换**: - `...

    java转换xml、list、map和json[借鉴].pdf

    3. Map到XML转换: - `maptoXml` 方法:这个方法接收一个Map对象,创建一个XML文档,然后遍历Map的键值对,为每个键创建一个`&lt;key&gt;`元素,并设置属性`label`为键的值,元素的文本为对应的值。最后,使用`doc2String...

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    在将查询结果转换为Map时,我们可能会遇到需要将Map的Key由下划线形式转换为驼峰形式的需求。 要实现这个功能,我们可以创建一个工具类,专门处理这种转换。以下是一个简单的示例: ```java import java.util.Map;...

    基于java的转换xml.zip

    在进行XML转换时,需要注意一些潜在问题,比如循环引用(对象之间相互引用)可能导致无限递归,以及安全性问题,因为XStream默认允许反序列化任何类,这可能会导致安全漏洞。因此,必须谨慎配置XStream,避免这些...

Global site tag (gtag.js) - Google Analytics