XML格式化工具:notepad++   下载地址 http://rj.baidu.com/soft/detail/13478.html?ald    一个教程地址:http://jingyan.baidu.com/album/4b07be3c69172648b380f383.html

一个很好的notepad教程地址: http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_add_comment.html

一个解析xml 成map的简单的工具类,只支持如下如下格式化的xml

 <object>
<栏目>李树鹏</栏目>
<request_day>22</request_day>
<day>22</day>
<name>tttt</name>
</object>

XMLValueObject类的全部代码:

 import java.io.StringReader;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class XMLValueObject implements java.io.Serializable { private static final long serialVersionUID = -3163892375347045824L; private static Logger logger = Logger.getLogger(XMLValueObject.class); private Map<String, List<String>> map; public XMLValueObject() {
map = new LinkedHashMap<String, List<String>>();
} public void put(String key, String value) {
if (value == null) {
return;
} List<String> list = map.get(key);
if (list == null) {
list = new ArrayList<String>();
map.put(key, list);
}
list.removeAll(list);
list.add(value);
} public void put(String key, String[] values) {
if (values == null || values.length == 0) {
return;
} List<String> list = map.get(key);
if (list == null) {
list = new ArrayList<String>();
map.put(key, list);
}
for (String value : values) {
list.add(value);
}
} public Object get(String key) {
List<String> list = map.get(key);
return list == null || list.isEmpty() ? null : list.get(0);
} public Object[] getArray(String key) {
List<String> list = map.get(key);
return list == null ? new String[0] : list.toArray(new String[0]);
} @SuppressWarnings("unchecked")
public void fromXML(String xml) {
try{
if (StringUtils.isEmpty(xml)) {
return;
}
StringReader in = new StringReader(xml);
SAXReader reader = new SAXReader(false);
Document doc = null;
try {
doc = reader.read(in);
}
catch (DocumentException e) {
logger.error("Could not read XML[" + xml + "]", e);
}
finally {
in.close();
} Element root = doc.getRootElement();
List<Element> children = (List<Element>) root.elements();
for (Element child : children) {
put(child.getName(), child.getText());
} }catch(Exception e)
{
//System.out.print("错误"+e.getMessage()+":"+xml);
e.printStackTrace();
} } public String toXML() {
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("object");
//root.addAttribute("class", XMLValueObject.class.getName()); for (Map.Entry<String, List<String>> entry : map.entrySet()) {
String key = entry.getKey();
List<String> list = entry.getValue(); for (String value : list) {
Element child = root.addElement(key);
child.addText(value);
}
} return doc.asXML();
} public Map<String, List<String>> getMap() {
return map;
} public void setMap(Map<String, List<String>> map) {
this.map = map;
}
}

测试代码:

 public static void main(String[] args) {
XMLValueObject vo = new XMLValueObject();
vo.fromXML("<object><栏目>李树鹏</栏目><request_day>22</request_day><day>22</day><name>tttt</name></object>");
System.out.println(vo.get("栏目"));
vo.put("temp", "1212");
System.out.println(vo.toXML());
}

最新文章

  1. 小白挑战:AsyncTask源码分析
  2. javascript基础二数据类型
  3. ycm添加自定义补全路径
  4. express 框架之 路由与中间件
  5. 导出excel和PDF小结 vba
  6. MySQL基础之第15章 MySQL用户管理
  7. java文件过滤器
  8. javascrip笔记——图片加载
  9. http 需要掌握的知识点(一)
  10. Font Awesome 4.0.3 提供了369个网页常用的矢量字体图标
  11. Apple Catching(dp)
  12. eclipse安装Veloeclipse(Velocity编辑插件)
  13. redis客户端连接服务端the version of redis server is too low to support this function错误
  14. Java接口实现传参
  15. 20164304姜奥——Exp1 PC平台逆向破解
  16. LeetCode(81): 搜索旋转排序数组 II
  17. TFS 安装遇到的问题
  18. bzoj 2216 [Poi2011]Lightning Conductor——单调队列+二分处理决策单调性
  19. HTML5 css3 阴影效果
  20. C# CLR20R3 程序终止的几种解决方案

热门文章

  1. 【转载】最长回文字符串(manacher算法)
  2. Leetcode 653. 两数之和 IV - 输入 BST
  3. [KMP][BZOJ1355][Baltic2009]Radio Transmission
  4. vue 组件间数据传递
  5. python基础之模块part1
  6. python读取文件
  7. 【Linux命令】删除大文件后磁盘空间未释放问题
  8. pytorch版本问题:AttributeError: &#39;module&#39; object has no attribute &#39;_rebuild_tensor_v2&#39;
  9. html &amp; email template
  10. RabbitMQ-Java客户端API指南-上