<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ⅴ入口| av无码久久久久不卡免费网站| 114级毛片免费观看| 免费国产成人高清在线观看网站| AV片在线观看免费| 免费国产成人高清在线观看麻豆| 久久国产成人亚洲精品影院 | 国产成人精品免费视| 成人av免费电影| 亚洲免费日韩无码系列 | 日本亚洲欧洲免费天堂午夜看片女人员| 精品亚洲永久免费精品| 亚洲欧洲日韩在线电影| 亚洲av无码成人影院一区| 国产免费内射又粗又爽密桃视频 | 国产免费一级高清淫曰本片| 免费看男人j放进女人j免费看| 成人免费黄色网址| 亚洲第一页日韩专区| 亚洲国产成人久久综合一 | 最近2019年免费中文字幕高清| 免费被黄网站在观看| 国产亚洲精品高清在线| 亚洲欧洲综合在线| 免费精品视频在线| 最近中文字幕免费2019| 亚洲av手机在线观看| 久久国产亚洲高清观看| 亚洲av无码专区在线电影天堂 | 在线免费观看国产| 免费人妻无码不卡中文字幕18禁| 亚洲AV福利天堂一区二区三| 亚洲sm另类一区二区三区| 国产在线精品免费aaa片| 高清国语自产拍免费视频国产| 亚洲线精品一区二区三区影音先锋 | 天天影视色香欲综合免费| 免费a级毛片网站| 亚洲精品国产成人| a级毛片免费观看在线|