1. 程式人生 > >使用dom4j解析xml格式字串,獲取標籤屬性和內容

使用dom4j解析xml格式字串,獲取標籤屬性和內容

本文解析XML格式字串引入的是: dom4j-1.6.1.jar

具體程式碼如下:

/**
     * 解析xml字串,獲取各項屬性內容
     * readXML方法描述:
     *
     * @author : sunyan
     * @createTime : 2016-4-26 下午4:37:50
     */
    private static void readXML() {
        try {
            String xmlResult = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><users><user id=\"10001\"><name>張三</name><role>群主</role>&lt;sex>男</sex><content>今天天氣真不錯!</content><time>2016-04-25 16:43:28</time></user><user id=\"10002\"> <name>李四</name><role>管理員</role><sex>男</sex><content>http://192.168.0.190:9999/beike/data/b3217f668.png</content><time>2016-04-25 16:45:08</time></user></users>";
            // 將xml格式字串轉化為DOM物件
            org.dom4j.Document document = DocumentHelper.parseText(xmlResult);
            // 獲取根結點物件
            Element rootElement = document.getRootElement();
            // 迴圈根節點,獲取其子節點
            for (Iterator iter = rootElement.elementIterator(); iter.hasNext();) {
                Element element = (Element) iter.next(); // 獲取標籤物件
                // 獲取該標籤物件的屬性
                Attribute attr = element.attribute("id");
                if (null != attr) {
                    String attrVal = attr.getValue();
                    String attrName = attr.getName();
                    System.out.println(attrName + ": " + attrVal);
                }
                // 迴圈第一層節點,獲取其子節點
                for (Iterator iterInner = element.elementIterator(); iterInner
                        .hasNext();) {
                    // 獲取標籤物件
                    Element elementOption = (Element) iterInner.next();
                    // 獲取該標籤物件的名稱
                    String tagName = elementOption.getName();
                    // 獲取該標籤物件的內容
                    String tagContent = elementOption.getTextTrim();
                    // 輸出內容
                    System.out.print(tagName + ": " + tagContent + "  ");
                }
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }