<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格式字符串轉載數據和卸載數據,在數據傳送時可以使用,避免直接對節點和屬性等操作。

    也可用來讀取配置文件。

    Root類:

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

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

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

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

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

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

     

    Item類:

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

    parseElement(Element ele)為解析節點。 

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

    其他的跟Root類差不多。

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

     

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

    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(
    "網點");
            sina.put(
    "名稱""新浪");
            sina.setValue(
    "http://www.sina.com");
            news.addItem(sina);

            Item search 
    = new Item();
            search.setNodeName(
    "網點");
            search.setNodeName(
    "類別");
            news.put(
    "描述""搜索引擎");
            Item google 
    = new Item();
            google.setNodeName(
    "網點");
            google.put(
    "名稱""谷歌");
            google.setValue(
    "http://www.google.com");
            Item baidu 
    = new Item();
            baidu.setNodeName(
    "網點");
            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"?>
    <書簽><類別 描述="新聞"><網點 名稱="新浪">http://www.sina.com</網點></類別><類別 描述="搜索引擎"><網點 名稱="谷歌">http://www.google.com</網點><網點 名稱="百度">http://www.baidu.com</網點></類別></書簽>
    <?xml version="1.0" encoding="UTF-8"?>
    <書簽><類別 描述="新聞"><網點 名稱="新浪">http://www.sina.com</網點></類別><類別 描述="搜索引擎"><網點 名稱="谷歌">http://www.google.com</網點><網點 名稱="百度">http://www.baidu.com</網點></類別></書簽>
    posted on 2007-08-15 01:08 三告習習 閱讀(1487) 評論(0)  編輯  收藏 所屬分類: java/jdk
    主站蜘蛛池模板: 精品熟女少妇av免费久久| 亚洲国产主播精品极品网红| www一区二区www免费| 亚洲一区二区三区播放在线| 中文字幕久久亚洲一区| 成人免费毛片视频| 88av免费观看入口在线| 中文字幕免费在线视频| 免费在线观看亚洲| 亚洲ts人妖网站| 久久亚洲日韩看片无码| 亚洲国产婷婷六月丁香| 亚洲一区二区三区国产精品| 国产大片91精品免费观看男同| 免费三级毛片电影片| 最近中文字幕免费2019| 免费观看久久精彩视频| 久久久受www免费人成| 午夜在线免费视频 | 77777午夜亚洲| 久久久国产精品亚洲一区| 日本亚洲视频在线 | 一级有奶水毛片免费看| 特黄aa级毛片免费视频播放| 日韩欧美亚洲中文乱码| 亚洲国产欧美国产综合一区| 亚洲精品人成网在线播放影院| 亚洲成AV人片久久| 91亚洲性爱在线视频| 亚洲人成网站日本片| 亚洲午夜国产精品| 亚洲一区二区三区播放在线| 亚洲午夜电影在线观看| 国产亚洲精品影视在线| 一区二区亚洲精品精华液| 亚洲色丰满少妇高潮18p| 亚洲一本到无码av中文字幕| 亚洲狠狠婷婷综合久久| 久久亚洲AV成人无码国产最大| 天天综合亚洲色在线精品| 特黄aa级毛片免费视频播放|