因为要用到拼接一些值成xml字符串所以写下了一个下工具类:
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * XML元素类
- * @author tangyangbo
- */
- public class Element {
- private String name; //元素名
- private String nodeText = ""; //文本值
- private Map<String,String> property = new HashMap<String,String>(); //属性
- private boolean isleaf = true; //是否子节点
- private List<Element> child = new ArrayList<Element>(); //子节点
- public Element(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getNodeText() {
- return nodeText;
- }
- public void setNodeText(String nodeText) {
- this.nodeText = nodeText;
- }
- public Map<String, String> getProperty() {
- return property;
- }
- public void setProperty(Map<String, String> property) {
- this.property = property;
- }
- public boolean isIsleaf() {
- return isleaf;
- }
- //这个方法应该屏蔽
- public void setIsleaf(boolean isleaf) {
- this.isleaf = isleaf;
- }
- public List<Element> getChild() {
- return child;
- }
- public void setChild(List<Element> child) {
- this.child = child;
- if(this.isleaf && this.child.size() > 0){
- this.isleaf = false;
- }
- }
- /**
- * 添加属性
- * @param key
- * @param value
- */
- public void addProperty(String key,String value){
- this.property.put(key, value);
- }
- /**
- * 添加子节点
- * @param el
- */
- public void addChild(Element el){
- this.child.add(el);
- if(this.isleaf && this.child.size() > 0){
- this.isleaf = false;
- }
- }
- }
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * XML元素类 * @author tangyangbo */ public class Element { private String name; //元素名 private String nodeText = ""; //文本值 private Map<String,String> property = new HashMap<String,String>(); //属性 private boolean isleaf = true; //是否子节点 private List<Element> child = new ArrayList<Element>(); //子节点 public Element(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNodeText() { return nodeText; } public void setNodeText(String nodeText) { this.nodeText = nodeText; } public Map<String, String> getProperty() { return property; } public void setProperty(Map<String, String> property) { this.property = property; } public boolean isIsleaf() { return isleaf; } //这个方法应该屏蔽 public void setIsleaf(boolean isleaf) { this.isleaf = isleaf; } public List<Element> getChild() { return child; } public void setChild(List<Element> child) { this.child = child; if(this.isleaf && this.child.size() > 0){ this.isleaf = false; } } /** * 添加属性 * @param key * @param value */ public void addProperty(String key,String value){ this.property.put(key, value); } /** * 添加子节点 * @param el */ public void addChild(Element el){ this.child.add(el); if(this.isleaf && this.child.size() > 0){ this.isleaf = false; } } }
- import java.util.Iterator;
- /**
- * XMl工具类
- * @author tangyangbo
- */
- public class XmlUtil {
- static String lt = "<";
- static String ltEnd = "</";
- static String rt = ">";
- static String rhtEnd = "/>";
- static String quotes = "\"";
- static String equal = "=";
- static String blank = " ";
- public static String elementToXml(Element el){
- StringBuffer result = new StringBuffer();
- //元素开始
- result.append(lt).append(el.getName());
- //判断是否有属性
- if(el.getProperty() != null && el.getProperty().size() > 0 ){
- Iterator iter = el.getProperty().keySet().iterator();
- while (iter.hasNext()) {
- String key = String.valueOf(iter.next());
- String value = el.getProperty().get(key);
- result.append(blank).append(key).append(equal)
- .append(quotes).append(value).append(quotes).append(blank);
- }
- }
- result.append(rt);//结束标记
- /*
- * 判断是否是叶子节点
- * 是叶子节点,添加节点内容
- * 不是叶子节点,循环添加子节点
- */
- if(el.isIsleaf()){
- result.append(el.getNodeText());
- }else{
- for(Element element :el.getChild()){
- result.append(elementToXml(element));
- }
- }
- //元素结束
- result.append(ltEnd).append(el.getName()).append(rt);
- return result.toString();
- }
- }
import java.util.Iterator; /** * XMl工具类 * @author tangyangbo */ public class XmlUtil { static String lt = "<"; static String ltEnd = "</"; static String rt = ">"; static String rhtEnd = "/>"; static String quotes = "\""; static String equal = "="; static String blank = " "; public static String elementToXml(Element el){ StringBuffer result = new StringBuffer(); //元素开始 result.append(lt).append(el.getName()); //判断是否有属性 if(el.getProperty() != null && el.getProperty().size() > 0 ){ Iterator iter = el.getProperty().keySet().iterator(); while (iter.hasNext()) { String key = String.valueOf(iter.next()); String value = el.getProperty().get(key); result.append(blank).append(key).append(equal) .append(quotes).append(value).append(quotes).append(blank); } } result.append(rt);//结束标记 /* * 判断是否是叶子节点 * 是叶子节点,添加节点内容 * 不是叶子节点,循环添加子节点 */ if(el.isIsleaf()){ result.append(el.getNodeText()); }else{ for(Element element :el.getChild()){ result.append(elementToXml(element)); } } //元素结束 result.append(ltEnd).append(el.getName()).append(rt); return result.toString(); } }
- import java.util.Iterator;
- /**
- * xml测试类
- * @author tangyangbo
- */
- public class XMLTest {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Element el = new Element("node");
- Element el1 = new Element("node1");
- el1.addProperty("name", "zhangshan");
- el1.addProperty("password", "123465");
- el1.setNodeText("11111");
- el.addChild(el1);
- Element el2 = new Element("node1");
- el2.addProperty("name", "lisi");
- el2.addProperty("password", "3333");
- el2.setNodeText("11111");
- el.addChild(el2);
- System.out.println(XmlUtil.elementToXml(el));
- }
- }
import java.util.Iterator; /** * xml测试类 * @author tangyangbo */ public class XMLTest { /** * @param args */ public static void main(String[] args) { Element el = new Element("node"); Element el1 = new Element("node1"); el1.addProperty("name", "zhangshan"); el1.addProperty("password", "123465"); el1.setNodeText("11111"); el.addChild(el1); Element el2 = new Element("node1"); el2.addProperty("name", "lisi"); el2.addProperty("password", "3333"); el2.setNodeText("11111"); el.addChild(el2); System.out.println(XmlUtil.elementToXml(el)); } }
运行结果:
<node><node1 name="zhangshan" password="123465" >11111</node1><node1 name="lishi" password="3333" >11111</node1></node>
相关推荐
基于Dom4j的Xml解析与组装项目工具类.
4.2.5 将XML组装在一起... 56 4.3 XML格式的优点... 71 4.4 编制样式单以便显示文档... 72 4.4.1 与样式单连接... 73 4.4.2 为根元素指定样式规则... 74 4.4.3 为标题指定样式规则... 75 4.4.4 为球员和统计...
14.11.2 数字到字符串的变换 486 14.12 对输出元素排序 488 14.13 CDATA和<符 491 14.14 方式 493 14.15 使用xsl:variable定义常数 496 14.16 命名模板 496 14.16.1 参数 498 14.17 删除和保留空白 501 14.18 选择 ...
14.11.2 数字到字符串的变换 486 14.12 对输出元素排序 488 14.13 CDATA和<符 491 14.14 方式 493 14.15 使用xsl:variable定义常数 496 14.16 命名模板 496 14.16.1 参数 498 14.17 删除和保留空白 501 14.18 选择 ...
4.2.5 将XML组装在一起... 56 4.3 XML格式的优点... 71 4.4 编制样式单以便显示文档... 72 4.4.1 与样式单连接... 73 4.4.2 为根元素指定样式规则... 74 4.4.3 为标题指定样式规则... 75 4.4.4 为球员和统计...
4.2.5 将XML组装在一起... 56 4.3 XML格式的优点... 71 4.4 编制样式单以便显示文档... 72 4.4.1 与样式单连接... 73 4.4.2 为根元素指定样式规则... 74 4.4.3 为标题指定样式规则... 75 4.4.4 为球员和统计...
53 4.2.5 将XML组装在一起... 56 4.3 XML格式的优点... 71 4.4 编制样式单以便显示文档... 72 4.4.1 与样式单连接... 73 4.4.2 为根元素指定样式规则... 74 4.4.3 为标题指定样式规则... 75 ...
12.3 字符串参数 12.4 访问对象域 12.4.1 访问实例域 12.4.2 访问静态域 12.5 编码签名 12.6 调用Java方法 12.6.1 实例方法 12.6.2 静态方法 12.6.3 构造器 12.6.4 替代方法调用 12.7 访问数组元素 12.8 错误处理 ...
1. 介绍.........................................................................................................18 1.1. 关于本书..........................................................................
1. 介绍.........................................................................................................18 1.1. 关于本书...........................................................................