浏览 2984 次
锁定老帖子 主题:Java基础 XML的生成
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-24
最后修改:2009-07-06
有的时候我们在写WEB应用的时候,想输出某种格式的XML 下面就介绍文本的XML的生成
XML的文本生成,关键点还是数据结构的构造 有了基本的结构,我们就可以建造自己想要的东西:
//用于构造xml数据的载体 //Stack结构,方便domcument节点数据的的先进后出原则设计 //因为属性 都是 key - Value的形式 ,所以用Map或者Hashtable
下面就是 一些生成方法 //初始化xml头部 public XMLWriterDemo() { sb = new StringBuffer(); stack = new Stack<String>(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); } //开始无属性的节点 public void startElement(String s) { sb.append('<'); sb.append(s); stack.push(s); sb.append(">\n"); } //开始有属性的节点 public void startElement(String s, HashMap<String, String> attr) { if (attr == null) { startElement(s); return; } sb.append("<"); sb.append(s); stack.push(s); Set<Entry<String, String>> set = attr.entrySet(); Iterator<Entry<String, String>> item = set.iterator(); Entry<String, String> entry = null; while (item.hasNext()) { entry = item.next(); String key = entry.getKey(); String val = entry.getValue(); sb.append(' '); sb.append(key); sb.append("=\""); sb.append(val); sb.append('"'); } sb.append('>'); sb.append("\n"); } //结束节点 public void endElement() { if (stack.isEmpty()) return; String s = stack.pop(); sb.append("</"); sb.append(s); sb.append('>'); sb.append("\n"); } //添加内容节点 public void writeElement(String elem, String cdata) { startElement(elem ); if (cdata == null) sb.append(""); else if (cdata.isEmpty()) sb.append(""); else sb.append(cdata+"\n"); endElement(); } public void writeElement(String elem, int val) { startElement(elem); sb.append(Integer.toString(val)); endElement(); } public void writeElement(String elem, long val) { startElement(elem); sb.append(Long.toString(val)); endElement(); } public void writeElement(String elem) { sb.append('<'); sb.append(elem); sb.append("/> \n"); } public void output() { System.out.println(sb.toString()); }
以上代码仅供参考,如果有不对的地方希望大家指点 附源码: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-10
|
|
返回顶楼 | |