黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java生成XML格式的字符串

Java生成XML格式的字符串

更新時間:2021-08-19 11:51:54 來源:動力節(jié)點 瀏覽2134次

java生成XML格式的字符串,支持多種XML格式,具體可以看類內(nèi)方法:

代碼:

import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;   
/**  
 * 根據(jù)該對象可以構造Xml字符串  
 *  
 *  
 */  
public class XmlObject {  
    private static String HEAD = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";  
    private String name;  
    private Object value;  
    private List<Attribute> attributes;  
    private List<XmlObject> subXmlObjects;   
    /**  
     * 根據(jù)name構造XmlObject  
     * @param name 生成xml時標簽名,如name="html",則生成xml為<html/> 
     */  
    public XmlObject(String name) {  
        this.name = name;  
    }   
    /**  
     * 獲得當前對象的名稱  
     * @return 返回當前對象的名稱  
     */  
    public final String getName() {  
        return name;  
    }   
    /**  
     * 設置當前對象的名稱  
     * @param name 給定名稱  
     */  
    public final void setName(String name) {  
        this.name = name;  
    }   
    /**  
     * 獲得當前對象的值  
     * @return 返回當前對象的值  
     */  
    public final Object getValue() {  
        return value;  
    }   
    /**  
     * 設置當前對象的值  
     * @param value 給定值  
     */  
    public final void setValue(Object value) {  
        this.value = value;  
    }   
    /**  
     * 為當前XmlObject添加屬性  
     * @param name 屬性名  
     * @param value 屬性值  
     */  
    public final void setAttribute(String name, Object value) {  
        if (attributes == null) {  
            attributes = new ArrayList<Attribute>();  
        }  
        Attribute attribute = null;  
        for (Attribute att : attributes) {  
            if (name.equalsIgnoreCase(att.getName())) {  
                attattribute = att;  
                break;  
            }  
        }  
        if (attribute == null) {  
            attribute = new Attribute(name, value);  
            attributes.add(attribute);  
        } else {  
            attribute.setValue(value);  
        }  
    }   
    /**  
     * 根據(jù)屬性名稱獲得當前XmlObject對象的屬性值  
     * @param name 屬性名稱  
     * @return 屬性值  
     */  
    public final Object getAttributeValue(String name) {  
        return getAttributeValue(name, null);  
    }   
    /**  
     * 根據(jù)屬性名稱獲得當前XmlObject對象的屬性值  
     * @param name 屬性名稱  
     * @param defaultValue 默認值  
     * @return 若屬性存在,則返回屬性值,否則返回默認值  
     */  
    public final Object getAttributeValue(String name, Object defaultValue) {  
        Attribute attribute = null;  
        for (Attribute att : attributes) {  
            if (name.equalsIgnoreCase(att.getName())) {  
                attattribute = att;  
                break;  
            }  
        }  
        if (attribute == null) {  
            return defaultValue;  
        } else {  
            return attribute.getValue();  
        }  
    }   
    /**  
     * 為當前XmlObject對象添加子XmlObject對象  
     * @param xmlObject 給定XmlObject對象  
     */  
    public final void addSubXmlObject(XmlObject xmlObject) {  
        if (subXmlObjects == null) {  
            subXmlObjects = new ArrayList<XmlObject>();  
        }  
        subXmlObjects.add(xmlObject);  
    }   
    /**  
     * 構造當前對象的壓縮XML字符串  
     *   
     * @return XML字符串  
     */  
    public final String toCompactXml() {  
        return HEAD + getNoHeadXml("", "");  
    }   
    /**  
     * 根據(jù)格式化留白("\t")和默認的行分隔符("\t")構造當前對象的XML字符串  
     *   
     * @return XML字符串  
     */  
    public String toFormatXml() {  
        return toFormatXml("\t");  
    }   
    /**  
     * 根據(jù)格式化留白和默認的行分隔符構("\n")造當前對象的XML字符串  
     *   
     * @param blank  
     *            格式化留白  
     * @return XML字符串  
     */  
    protected final String toFormatXml(String blank) {  
        return HEAD + "\n" + getNoHeadXml(blank, "\n");  
    }   
    /**  
     * 根據(jù)格式化留白和行分隔符構造當前對象的無頭的XML字符串  
     *   
     * @param blank  
     *            格式化留白  
     * @param split  
     *            行分隔符  
     * @return 無頭的XML字符串  
     */  
    protected final String getNoHeadXml(String blank, String split) {  
        return getNoHeadXml(blank, split, 0);  
    }   
    private final 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(blanks + "<" + name);  
        if (attributes != null) {  
            Iterator<Attribute> iterator = attributes.iterator();  
            while (iterator.hasNext()) {  
                Attribute attribute = iterator.next();  
                sb.append(" " + attribute.getName() + "=\""  
                        + attribute.getValue() + "\"");  
            }  
        }  
        if (subXmlObjects == null) {  
            if (value == null) {  
                sb.append("/>" + split);  
            } else {  
                sb.append(">");  
                sb.append(value);  
                sb.append("</" + name + ">" + split);  
            }  
        } else {  
            sb.append(">" + split);  
            Iterator<XmlObject> 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();  
    }   
    class Attribute {  
        private String name;  
        private Object value;  
 
        public Attribute(String name, Object value) {  
            this.name = name;  
            this.value = value;  
        }   
        public String getName() {  
            return name;  
        }   
        public void setName(String name) {  
            this.name = name;  
        }   
        public Object getValue() {  
            return value;  
        }   
        public void setValue(Object value) {  
            this.value = value;  
        }  
    }  
} 

以上就是動力節(jié)點小編介紹的"Java生成XML格式的字符串",希望對大家有幫助,想了解更多可查看Java在線學習。動力節(jié)點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩三级免费 | 国产成人三级经典中文 | videoxxoo欧美老师 | 国产精选莉莉私人影院 | 91免费精品国偷自产在线在线 | 男女啪啪的网站 | 日韩国产综合 | 看一级黄色毛片 | 国产女女互摸互慰在线观看 | 欧美成人免费一区在线播放 | 欧美午夜网站 | 国产亚洲女在线线精品 | 久久综合综合久久狠狠狠97色 | 草逼视频免费观看 | 天天干夜夜爽天天操夜夜爽视频 | 久久天天 | 亚洲一二四区性毛片1在线 亚洲一二三在线 | 美女黄网站在线观看 | 欧美黄色α片 | 黄色网址免费看 | 免费一看一级毛片全播放 | 91短视频版在线观看www | 两性色午夜视频免费老司机 | 国产成人一区 | 欧美日韩视频在线 | 午夜剧场在线播放 | 免费h福利漫画网站在线 | 久草网免费 | 香港三级网站 | 日韩高清在线播放 | 亚洲视频在线观看不卡 | 中文字幕日韩一区二区 | 最近免费中文字幕大全免费 | 亚洲经典激情春色另类 | 欧洲亚洲一区二区三区 | 成 人网站免费 | 亚洲波多野结衣 | 精品国模一区二区三区 | 免费人成视网站在线不卡 | 中文字幕免费高清视频 | 特级毛片s级全部免费 |