java中拼接xml方法_Java常用工具类,拼接XML格式的字符串,非常好用
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
/**
* 根据该对象可以构造Xml字符串
* @author zhangpeng
*
*/
public class XmlObject {
private static String HEAD = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
private String name;
private Object value;
private Map attributes;
private List subXmlObjects;
/**
* 根据name构造XmlObject
*
* @param name
* 生成xml时标签名,如name="html",则生成xml为
*/
public XmlObject(String name) {
this.name = name;
}
/**
* 获得当前对象的名称
*
* @return 返回当前对象的名称
*/
public String getName() {
return name;
}
/**
* 设置当前对象的名称
*
* @param name
* 给定名称
*/
public void setName(String name) {
this.name = name;
}
/**
* 获得当前对象的值
*
* @return 返回当前对象的值
*/
public Object getValue() {
return value;
}
/**
* 设置当前对象的值
*
* @param value
* 给定值
*/
public void setValue(Object value) {
this.value = value;
}
/**
* 为当前XmlObject添加属性
*
* @param name
* 属性名
* @param value
* 属性值
*/
public void addAttribute(String name, Object value) {
if (attributes == null) {
attributes = new LinkedHashMap();
}
if (name != null && !name.trim().equals("") && !name.equals(this.name)) {
attributes.put(name, value);
}
}
/**
* 为当前XmlObject添加属性
*
* @param name
* 属性名
* @param value
* 属性值
*/
public void setAttribute(String name, Object value) {
addAttribute(name, value);
}
/**
* 根据属性名称获得当前XmlObject对象的属性值
*
* @param name
* 属性名称
* @return 属性值
*/
public Object getAttributeValue(String name) {
return getAttributeValue(name, null);
}
/**
* 根据属性名称获得当前XmlObject对象的属性值
*
* @param name
* 属性名称
* @param defaultValue
* 默认值
* @return 若属性存在,则返回属性值,否则返回默认值
*/
public Object getAttributeValue(String name, Object defaultValue) {
Object value = attributes.get(name);
return value == null ? defaultValue : value;
}
/**
* 为当前XmlObject对象添加子XmlObject对象
*
* @param xmlObject
* 给定XmlObject对象
*/
public void addSubXmlObject(XmlObject xmlObject) {
if (subXmlObjects == null) {
subXmlObjects = new ArrayList();
}
if (xmlObject != null) {
subXmlObjects.add(xmlObject);
}
}
public List getSubXmlObjectsByName(String name) {
List xmlObjects = new ArrayList();
for (XmlObject temp: subXmlObjects) {
if (temp.getName().equals(name)) {
xmlObjects.add(temp);
}
}
return xmlObjects;
}
public XmlObject getUniqueSubXmlObjectByName(String name) {
for (XmlObject temp: subXmlObjects) {
if (temp.getName().equals(name)) {
return temp;
}
}
return null;
}
/**
* 构造当前对象的压缩XML字符串
*
* @return XML字符串
*/
public String toCompactXml() {
return HEAD + getNoHeadXml("", "");
}
/**
* 根据格式化留白("\t")和默认的行分隔符("\t")构造当前对象的XML字符串
*
* @return XML字符串
*/
public String toFormatXml() {
return HEAD + getNoHeadXml("\t", "\n");
}
/**
* 根据格式化留白和默认的行分隔符构("\n")造当前对象的XML字符串
*
* @param blank
* 格式化留白
* @return XML字符串
*/
public String toFormatXml(String blank) {
return HEAD + getNoHeadXml(blank, "\n");
}
/**
* 根据格式化留白和行分隔符构造当前对象的无头的XML字符串
*
* @param blank
* 格式化留白
* @param split
* 行分隔符
* @return 无头的XML字符串
*/
private String getNoHeadXml(String blank, String split) {
return getNoHeadXml(blank, split, 0);
}
private String getNoHeadXml(String blank, String split, int count) {
String blanks = "";
for (int i = 0; i < count; i++) {
blanks += blank;
}
StringBuffer sb = new StringBuffer();
sb.append(count == 0 ? split : "");
sb.append(blanks + "
if (attributes != null) {
Set> set = attributes.entrySet();
for (Entry entry : set) {
String tempName = entry.getKey();
Object tempValue = entry.getValue();
if (tempName != null && tempValue != null) {
sb.append(" " + tempName + "=\"" + tempValue + "\"");
}
}
}
if (subXmlObjects == null) {
if (value == null) {
sb.append("/>" + split);
} else {
sb.append(">");
sb.append(value);
sb.append("" + name + ">" + split);
}
} else {
sb.append(">" + split);
Iterator iterator = subXmlObjects.iterator();
count += 1;
while (iterator.hasNext()) {
XmlObject xmlObject = iterator.next();
sb.append(xmlObject.getNoHeadXml(blank, split, count));
}
sb.append(blanks + "" + name + ">" + split);
}
return sb.toString();
}
}
java中拼接xml方法_Java常用工具类,拼接XML格式的字符串,非常好用相关推荐
- java文件读写的基本类_java常用工具类(三)—— 文件读取的操作类
定义常用的文件类型 public class FileType { /** * 文件头类型 */ public static final String XML_FILE = "text/xm ...
- java中的push方法_Java ArrayDeque push()方法与示例
java中的push方法 ArrayDeque类push()方法 (ArrayDeque Class push() method) push() Method is available in java ...
- java中三种方法_Java文件I/O的三种方法
Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...
- java中的排序方法_Java中8种常见的排序方法
本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...
- Java中继承toString方法_java中toString方法详解
1.Object类中定义有toString方法,用于返回对象的字符串表示(一个可以表示该对象属性内容的字符串),返回的字符串形式为 "类名@hashCode值".下面看Object ...
- java中math的方法_Java Math所有方法
首页 > 基础教程 > 常用类 > 常用 Number & Math类 Java Math所有方法 Math类包含完成基本数学函数所需的方法.这些方法分为三类:三角函数方法. ...
- java中math的方法_Java中Math类常用方法代码详解
近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void mai ...
- java中string的方法_java中String类中的常用方法
@Test public void testToString2() { /** * 他会调用toString方法 他调用的其实是Object类中的toString方法 引用会隐式调用toStri ...
- java中string的方法_java中String的常用方法
package com.string; public class string1 { public static void main(String args[]){ //将char[]数组转换成Str ...
最新文章
- Go 语言编程 — 高级数据类型 — Map 集合
- linux rpm包解压到当前目录
- c语言用链表实现成绩管理系统,C语言基于单链表得学生成绩管理系统
- 企业网络推广——企业网络推广表示合理采集可助力网站品质提升
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十四【Controllers和Actions】
- 离职113天后,微软的“中国先生”沈向洋云受聘清华大学教授
- Timer源码之TaskQueue
- PHP5应用实例详解
- 电脑坏了,疑似主板故障
- 201521123076《java程序设计》第12周学习总结
- MySQL数据库增删改查的SQL语句
- 《Objective-C 程序设计(第4版)》图书信息
- Angularjs的http请求
- 7z文件格式及其源码的分析(三)
- 计算机硬件系统的主要性能指标
- 【Python】MySQLdb库的使用以及格式化输出字段中的值
- 王者荣耀微信登陆不了服务器,王者荣耀微信区怎么登陆不了 王者荣耀微信区怎么登不上...
- 生产用料清单-在制材料数量
- FPGA_PCB 设计之一3.3V-LVTTL与3.3V-LVCMOS区别
- dedecms采集基础篇