<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>


    隨筆-35  評論-97  文章-0  trackbacks-0

    使用xml格式字符串轉載數(shù)據(jù)和卸載數(shù)據(jù),在數(shù)據(jù)傳送時可以使用,避免直接對節(jié)點和屬性等操作。

    也可用來讀取配置文件。

    Root類:

    Root是跟節(jié)點。結點名默認為"root",但是可以根據(jù)需要改變,使用setNodeName(String nodeName)。

    put(String key, Object value)是添加屬性值。

    setValue(String value)是設定節(jié)點值。

    parseXml(String xml)將xml字符串解析出Root對象。

    toXml()將Root對象轉為字符串。

    addItem(Item item)為添加子節(jié)點。

     

    Item類:

    addItem(Item item)為添加子節(jié)點,可以嵌套。

    parseElement(Element ele)為解析節(jié)點。 

    Element toElement()將Item對象轉成元素。

    其他的跟Root類差不多。

    String toString()減Item轉成字符串。

     

    不多做解釋了,看看源碼就知道,很簡單,雖不是很完善,但也可用用了。你可以再根據(jù)自己需要修改。

    Root

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;

    import org.apache.commons.collections.CollectionUtils;
    import org.apache.commons.lang.StringUtils;
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;


    /**
     * 
    @author haoyu
     * 
     
    */

    public class Root
    {
        
    private String nodeName = "root";
        
    private String name;
        
    private String description;

        
    private Map<String, Object> attributes = new LinkedHashMap<String, Object>();
        
    private List<Item> items;


        
    public Root()
        
    {
        }



        
    public Root(String nodeName)
        
    {
            
    if(StringUtils.isNotBlank(nodeName))
            
    {
                
    this.nodeName = nodeName;
            }

        }



        
    public String getDescription()
        
    {
            
    return description;
        }



        
    public void setDescription(String description)
        
    {
            
    if(StringUtils.isNotBlank(description))
            
    {
                
    this.description = description;
            }

        }



        
    public String getName()
        
    {
            
    return name;
        }



        
    public void setName(String name)
        
    {
            
    this.name = name;
        }



        
    public String getNodeName()
        
    {
            
    return nodeName;
        }



        
    public void setNodeName(String nodeName)
        
    {
            
    this.nodeName = nodeName;
        }



        
    public void put(String key, Object value)
        
    {
            attributes.put(key, value);
        }



        
    public Object get(String key)
        
    {
            
    return attributes.get(key);
        }



        
    public Map<String, Object> getAttributes()
        
    {
            
    return attributes;
        }



        
    public void setAttributes(Map<String, Object> attributes)
        
    {
            
    this.attributes = attributes;
        }



        
    public List<Item> getItems()
        
    {
            
    return items;
        }



        
    public void addItem(Item item)
        
    {
            
    if(items == null)
            
    {
                items 
    = new ArrayList<Item>();
            }

            items.add(item);
        }



        
    public String toXml()
        
    {
            Document doc 
    = DocumentHelper.createDocument();
            Element rootEle 
    = doc.addElement(nodeName);
            
    if(name != null)
            
    {
                rootEle.addAttribute(
    "name", name);
            }

            
    if(description != null)
            
    {
                rootEle.addAttribute(
    "description", description);
            }


            
    for(Iterator it = attributes.entrySet().iterator(); it.hasNext();)
            
    {
                Map.Entry entry 
    = (Map.Entry)it.next();
                
    if(entry == null || entry.getKey() == null || entry.getValue() == null
                    
    || StringUtils.isBlank(String.valueOf(entry.getKey())))
                
    {
                    
    continue;
                }

                rootEle.addAttribute(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
            }


            
    if(CollectionUtils.isNotEmpty(items))
            
    {
                
    for(Iterator<Item> it = items.iterator(); it.hasNext();)
                
    {
                    Item item 
    = it.next();
                    rootEle.add(item.toElement());
                }

            }

            
    return doc.asXML();
        }



        
    public String toString()
        
    {
            
    return toXml();
        }



        @SuppressWarnings(
    "unchecked")
        
    public void parseXml(String xml)
        
    {
            
    try
            
    {
                Document doc 
    = DocumentHelper.parseText(xml);
                Element rootEle 
    = doc.getRootElement();
                
    this.setNodeName(rootEle.getName());
                
    this.setName(rootEle.attributeValue("name"));
                
    this.setDescription(rootEle.attributeValue("description"));

                
    for(Iterator it = attributes.entrySet().iterator(); it.hasNext();)
                
    {
                    Map.Entry entry 
    = (Map.Entry)it.next();
                    
    if(entry == null || entry.getKey() == null || entry.getValue() == null
                        
    || StringUtils.isBlank(String.valueOf(entry.getKey())))
                    
    {
                        
    continue;
                    }


                    rootEle.addAttribute(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
                }


                
    for(Iterator it = rootEle.attributeIterator(); it.hasNext();)
                
    {
                    Attribute attr 
    = (Attribute)it.next();
                    
    this.put(attr.getName(), attr.getText());
                }


                List
    <Element> items = rootEle.elements();

                
    if(CollectionUtils.isNotEmpty(items))
                
    {
                    
    for(Iterator<Element> it = items.iterator(); it.hasNext();)
                    
    {
                        Element recordEle 
    = it.next();
                        Item item 
    = new Item();
                        item.parseElement(recordEle);
                        
    this.addItem(item);
                    }

                }

            }

            
    catch(Exception e)
            
    {
                e.printStackTrace();
            }

        }



        
    public Document trun2Doc()
        
    {
            
    try
            
    {
                
    return DocumentHelper.parseText(this.toString());
            }

            
    catch(Exception e)
            
    {
                e.printStackTrace();
            }

            
    return null;
        }

    }

     

    Item

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;

    import org.apache.commons.collections.CollectionUtils;
    import org.apache.commons.lang.StringUtils;
    import org.dom4j.Attribute;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;


    /**
     * 
    @author haoyu
     * 
     
    */

    public class Item
    {

        
    private String nodeName = "item";

        
    private String value;

        
    private Map<String, Object> attributes = new LinkedHashMap<String, Object>();

        
    private List<Item> items;


        
    public Item()
        
    {
        }



        
    public Item(String nodeName)
        
    {
            
    if(StringUtils.isNotBlank(nodeName))
            
    {
                
    this.nodeName = nodeName;
            }

        }



        
    public String getNodeName()
        
    {
            
    return nodeName;
        }



        
    public void setNodeName(String nodeName)
        
    {
            
    if(StringUtils.isNotBlank(nodeName))
            
    {
                
    this.nodeName = nodeName;
            }

        }



        
    public void put(String key, Object value)
        
    {
            attributes.put(key, value);
        }



        
    public Object get(String key)
        
    {
            
    return attributes.get(key);
        }



        
    public Map<String, Object> getAttributes()
        
    {
            
    return attributes;
        }



        
    public void setAttributes(Map<String, Object> attributes)
        
    {
            
    this.attributes = attributes;
        }



        
    public String getValue()
        
    {
            
    return value;
        }



        
    public void setValue(String value)
        
    {
            
    this.value = value;
        }



        
    public List<Item> getItems()
        
    {
            
    return items;
        }



        
    public void addItem(Item item)
        
    {
            
    if(items == null)
            
    {
                items 
    = new ArrayList<Item>();
            }

            items.add(item);
        }



        
    public void parseElement(Element ele)
        
    {
            
    this.nodeName = ele.getName();
            
    for(Iterator it = ele.attributeIterator(); it.hasNext();)
            
    {
                Attribute attr 
    = (Attribute)it.next();
                
    this.put(attr.getName(), attr.getText());
            }

            
    if(StringUtils.isNotBlank(ele.getText()))
            
    {
                
    this.setValue(ele.getText());
            }

            List
    <Element> itemEles = ele.elements();
            
    if(CollectionUtils.isNotEmpty(itemEles))
            
    {
                
    for(Iterator it = itemEles.iterator(); it.hasNext();)
                
    {
                    Element itemEle 
    = (Element)it.next();
                    Item item 
    = new Item(itemEle.getName());
                    item.parseElement(itemEle);
                    
    this.addItem(item);
                }


            }

        }



        
    public Element toElement()
        
    {
            Element itemEle 
    = DocumentHelper.createElement(nodeName);
            
    for(Iterator it = attributes.entrySet().iterator(); it.hasNext();)
            
    {
                Map.Entry entry 
    = (Map.Entry)it.next();
                
    if(entry == null || entry.getKey() == null || entry.getValue() == null
                    
    || StringUtils.isBlank(String.valueOf(entry.getKey())))
                
    {
                    
    continue;
                }


                itemEle.addAttribute(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
            }

            
    if(CollectionUtils.isNotEmpty(items))
            
    {
                
    for(Iterator it = items.iterator(); it.hasNext();)
                
    {
                    Item item 
    = (Item)it.next();
                    itemEle.add(item.toElement());
                }

            }

            
    if(value != null)
            
    {
                itemEle.setText(value);
            }


            
    return itemEle;
        }



        
    public String toString()
        
    {
            StringBuffer sb 
    = new StringBuffer();
            sb.append(
    "<").append(nodeName);
            
    for(Iterator it = attributes.entrySet().iterator(); it.hasNext();)
            
    {
                Map.Entry entry 
    = (Map.Entry)it.next();
                sb.append(
    " ").append(entry.getKey()).append("=\"").append(entry.getValue()).append("\"");
            }

            
    if(value != null)
            
    {
                sb.append(
    ">").append(value).append("</").append(nodeName).append(">");
            }

            
    else
            
    {
                sb.append(
    "/>");
            }

            
    return sb.toString();
        }

    }

     

    簡單應用一下試試:

        public static void main(String[] args)
        
    {
            Root bookmark 
    = new Root();
            bookmark.setNodeName(
    "書簽");

            Item news 
    = new Item();
            news.setNodeName(
    "類別");
            news.put(
    "描述""新聞");
            Item sina 
    = new Item();
            sina.setNodeName(
    "網(wǎng)點");
            sina.put(
    "名稱""新浪");
            sina.setValue(
    "http://www.sina.com");
            news.addItem(sina);

            Item search 
    = new Item();
            search.setNodeName(
    "網(wǎng)點");
            search.setNodeName(
    "類別");
            news.put(
    "描述""搜索引擎");
            Item google 
    = new Item();
            google.setNodeName(
    "網(wǎng)點");
            google.put(
    "名稱""谷歌");
            google.setValue(
    "http://www.google.com");
            Item baidu 
    = new Item();
            baidu.setNodeName(
    "網(wǎng)點");
            baidu.put(
    "名稱""百度");
            baidu.setValue(
    "http://www.baidu.com");
            search.addItem(google);
            search.addItem(baidu);

            bookmark.addItem(news);
            bookmark.addItem(search);
            System.out.println(bookmark.toString());

            Root newBookmark 
    = new Root();
            newBookmark.parseXml(bookmark.toString());
            System.out.println(newBookmark.toString());
        }

     

    結果輸出:

    <?xml version="1.0" encoding="UTF-8"?>
    <書簽><類別 描述="新聞"><網(wǎng)點 名稱="新浪">http://www.sina.com</網(wǎng)點></類別><類別 描述="搜索引擎"><網(wǎng)點 名稱="谷歌">http://www.google.com</網(wǎng)點><網(wǎng)點 名稱="百度">http://www.baidu.com</網(wǎng)點></類別></書簽>
    <?xml version="1.0" encoding="UTF-8"?>
    <書簽><類別 描述="新聞"><網(wǎng)點 名稱="新浪">http://www.sina.com</網(wǎng)點></類別><類別 描述="搜索引擎"><網(wǎng)點 名稱="谷歌">http://www.google.com</網(wǎng)點><網(wǎng)點 名稱="百度">http://www.baidu.com</網(wǎng)點></類別></書簽>
    posted on 2007-08-15 01:08 三告習習 閱讀(1484) 評論(0)  編輯  收藏 所屬分類: java/jdk
    主站蜘蛛池模板: 亚洲蜜芽在线精品一区| 婷婷亚洲天堂影院| 亚洲成A人片在线观看无码不卡| 男女污污污超污视频免费在线看| 影音先锋在线免费观看| 亚洲精品国产国语| 最近的中文字幕大全免费版| 国产午夜亚洲精品| 日本午夜免费福利视频| 福利片免费一区二区三区| 免费A级毛片无码久久版| 男女男精品网站免费观看 | 老子影院午夜伦不卡亚洲| 啦啦啦www免费视频| 麻豆一区二区三区蜜桃免费| 亚洲女人被黑人巨大进入| 国产激情久久久久影院老熟女免费| 久久久久久亚洲精品不卡| 全黄大全大色全免费大片| 亚洲福利视频一区| 男女做羞羞的事视频免费观看无遮挡| 亚洲人成在线播放| 四虎永久在线精品免费观看地址| 一级一级一级毛片免费毛片| 亚洲精品中文字幕无码蜜桃| 久久国产精品成人片免费| 亚洲欧美国产国产综合一区| 久久亚洲AV无码西西人体| 18以下岁毛片在免费播放| 亚洲成AV人片在WWW| 亚洲午夜精品久久久久久浪潮| 免费黄色电影在线观看| 亚洲日本国产综合高清| 色久悠悠婷婷综合在线亚洲| 最近的中文字幕大全免费8| 亚洲狠狠婷婷综合久久| 亚洲VA中文字幕无码毛片| 国产成人免费爽爽爽视频| 一级做a爰片久久免费| 亚洲综合色7777情网站777| 亚洲日韩中文字幕日韩在线 |