java jdom 解析CDATA内容

Posted ``小~酒窝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java jdom 解析CDATA内容相关的知识,希望对你有一定的参考价值。

package com;

import java.io.IOException;
import java.io.StringReader;
import java.util.List;

import org.jdom.CDATA;
import org.jdom.Comment;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.EntityRef;
import org.jdom.JDOMException;
import org.jdom.ProcessingInstruction;
import org.jdom.Text;
import org.jdom.input.SAXBuilder;

public class test {
	public static void main(String[] args){
		String xml =  
            "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +  
            "<SrvCont>" +  
            "<SrvRoot>"+
            "<![CDATA[" +  
            "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +  
            "<Item><ItemId>seqInit</ItemId><ItemValue>20161126BLUS3110000001</ItemValue></Item>" +  
            "<Item><ItemId>content</ItemId><ItemValue>测试内容</ItemValue></Item>" +  
            "<Item><ItemId>resion</ItemId><ItemValue>测试</ItemValue></Item>" +  
            "]]></SrvRoot></SrvCont>";  

    SAXBuilder builder = new SAXBuilder();  
    try {  
        Document document = builder.build(new StringReader(xml));  
        Element root = document.getRootElement();  
        Element data = root.getChild("SrvRoot");  

        //  
        // Reading the mixed content of an xml element and iterate  
        // the result list. This list object can contains any of the  
        // following objects: Comment, Element, CDATA, DocType,  
        // ProcessingInstruction, EntityRef and Text.  
        //  
        List content = data.getContent();  
        String result = "";
        for (Object o : content) {  
            if (o instanceof Comment) {  
                Comment comment = (Comment) o;  
                System.out.println("Comment   = " + comment);  
            } else if (o instanceof Element) {  
                Element element = (Element) o;  
                System.out.println("Element   = " + element);  
            } else if (o instanceof CDATA) {  
                CDATA cdata = (CDATA) o;
                result = cdata.getText();
                System.out.println("CDATA     = " + result); 
            } else if (o instanceof DocType) {  
                DocType docType = (DocType) o;  
                System.out.println("DocType   = " + docType);  
            } else if (o instanceof ProcessingInstruction) {  
                ProcessingInstruction pi = (ProcessingInstruction) o;  
                System.out.println("PI        = " + pi);  
            } else if (o instanceof EntityRef) {  
                EntityRef entityRef = (EntityRef) o;  
                System.out.println("EntityRef = " + entityRef);  
            } else if (o instanceof Text) {  
                Text text = (Text) o;  
                System.out.println("Text      = " + text);  
            }  
        }  
    } catch (JDOMException e) {  
        e.printStackTrace();  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
	}
	
	
}

  

以上是关于java jdom 解析CDATA内容的主要内容,如果未能解决你的问题,请参考以下文章

浅谈用java解析xml文档

Java解析XML格式串(JDOM解析)

对DOM,SAX,JDOM,DOM4J四种方法解析XML文件的分析

Java中XML解析工具范例

Java中XML的四种解析方式

XML--Java中的四种常见解析方式--jdom与dom4j