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

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

Java生成XML格式的字符串

更新時間:2021-08-19 11:51:54 來源:動力節點 瀏覽2082次

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

代碼:

import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;   
/**  
 * 根據該對象可以構造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;   
    /**  
     * 根據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);  
        }  
    }   
    /**  
     * 根據屬性名稱獲得當前XmlObject對象的屬性值  
     * @param name 屬性名稱  
     * @return 屬性值  
     */  
    public final Object getAttributeValue(String name) {  
        return getAttributeValue(name, null);  
    }   
    /**  
     * 根據屬性名稱獲得當前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("", "");  
    }   
    /**  
     * 根據格式化留白("\t")和默認的行分隔符("\t")構造當前對象的XML字符串  
     *   
     * @return XML字符串  
     */  
    public String toFormatXml() {  
        return toFormatXml("\t");  
    }   
    /**  
     * 根據格式化留白和默認的行分隔符構("\n")造當前對象的XML字符串  
     *   
     * @param blank  
     *            格式化留白  
     * @return XML字符串  
     */  
    protected final String toFormatXml(String blank) {  
        return HEAD + "\n" + getNoHeadXml(blank, "\n");  
    }   
    /**  
     * 根據格式化留白和行分隔符構造當前對象的無頭的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;  
        }  
    }  
} 

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 黄网免费| 天天操天天插 | 欧美成人观看视频在线 | 欧美精品亚洲网站 | 午夜激情影院 | 亚洲欧美成人综合久久久 | 中国又粗又大又爽的毛片 | 99久免费精品视频在线观看2 | 中文字幕一区二区三区四区 | 国产成人夜间影院在线观看 | 成人国产精品 | 日本三级香港三级久久99 | 国产一区二区三区四卡 | www在线| 怡红院手机在线 | 欧美福利网 | 国产激爽大片高清在线观看 | 日韩精品久久不卡中文字幕 | 一级特黄a免费大片 | 热re66久久精品国产99re | 欧美经典成人在观看线视频 | 欧美视频中文字幕 | 国产欧美专区在线观看 | 日韩在线视频免费看 | 国产777 | www.九九热 | 久久丝袜精品中文字幕 | 欧美福利网 | 精品视频在线视频 | 天天夜日日日日碰日日摸 | 人人爽人人干 | 国产50页| 天天摸夜夜摸狠狠摸夜夜摸 | 免费视频日韩 | 亚洲午夜国产精品 | 亚洲欧美日韩精品久久奇米色影视 | 成人叼嘿视频免费网站 | 日韩高清在线日韩大片观看网址 | 天天操夜夜艹 | 啪啪网页 | 91看片淫黄大片.在线天堂 |