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

專注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編程,感興趣的同學可以關注一下。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成年人在线免费观看网站 | 五月婷婷视频 | 日本黄网在线观看 | 欧美怡红院免费的视频 | 午夜小视频男女在线观看 | 99精品在线免费 | 国产在线综合视频 | 日b免费视频 | 青青青草国产 | 国产网站麻豆精品视频 | 日本精品a在线观看 | 中文字幕在线网 | 免费羞羞视频 | 福利在线网址 | 成人黄视频 | 亚洲免费在线看 | 日韩精品视频在线观看免费 | 欧美久久综合 | 青草视频网 | 国产视频第一页 | 久青草中文字幕精品视频 | 美女视频很黄很a免费国产 美女涩涩网站 | 曰批免费动漫视频播放免费 | 国产亚洲精品线观看77 | 美国成人免费视频 | 午夜宅男永久在线观看 | 成人在线观看高清完整免费 | 亚洲一页 | 黄色激情在线视频 | 深夜男人天堂 | 午夜剧场一级片 | 日本人欧美xx | 91精品国产乱码久久久久久 | 拍真实国产伦偷精品 | 中文字幕免费观看视频 | 香蕉视频亚洲 | 国产精品嫩草影院在线观看免费 | 国产亚洲综合一区二区在线 | 日本免费一区视频 | a及毛片| 又黄又爽的美女免费视频 |