Dom4j 主要接口

Document

整个文档对象,

add()方法添加子节点。

getRootElement()得到根节点。

QName

可创建的Element的基本元素名称

Element

节点

static createElement(QName qName)可创建节点

addText(String text)可添加元素的内容。add方法添加子节点。

element(String eleName)查询节点中名字为eleName的子节点。

elements(String eleName)查询节点名字为eleName的子节点列表。

selectNodes(String nodePath)查询路径为nodePath的子节点列表。

selectSingleNode(String nodePath)查询路径为nodePath的单个子节点(Element)。

OutputFormat

createPrettyPrint()可美化格式的输出。

setEncoding(String encoding) 设置编码.

XMLWriter:

new XMLWriter(new FileWriter(xmlFilePath), format)可创建xmlWriter对象。  write(Document doc)将整个doc写入到xmlWriter对象中。

close()方法:关闭io流,必写。

 

 

写入到xml文件:

 

/**//* 创建Document */
        Document doc = DocumentHelper.createDocument();

        QName serverListQName = new QName("ServerList");
        Element serverListElement = DocumentHelper.createElement(serverListQName);
        doc.add(serverListElement); //加到父节点doc
QName serverQName = new QName("server");
             Element serverElement = DocumentHelper.createElement(serverQName);
             serverListElement.add(serverElement); //加到父节点ServerList
        	
	        QName ipQName = new QName("ip");
	        Element ipElement = DocumentHelper.createElement(ipQName);
	        ipElement.addText("XXX.XX.XX.XX");
	        serverElement.add(ipElement); //加到父节点server

OutputFormat format = OutputFormat.createPrettyPrint();/**//* 美化格式的输出 */
        // OutputFormat format = OutputFormat.createCompactFormat();/*
       // 压缩格式的输出,节省空间 */
        format.setEncoding("utf-8");/**//* xml的编码 */
        XMLWriter writer = new XMLWriter(new FileWriter("test.xml"), format);  //文件的路径。
        writer.write(doc);
        writer.close();/**//* 必写无疑 */

 

生成后的文件test.xml

 

<?xml version="1.0" encoding="utf-8"?>

<ServerList>
  <server>
    <ip>XXX.XX.XX.XX</ip>
  </server>
</ServerList>

 

读取xml文件到List<ServerInfo>

/**
	 * 
	 * @param xmlFilePath
	 * @return
	 */
	public static List<ServerInfo> readXML(String xmlFilePath){
		File inputXml=new File(xmlFilePath);    
        SAXReader saxReader = new SAXReader();    
        Document document=null;
		try {
			document = saxReader.read(inputXml);
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
        Element employees = document.getRootElement();
        Element serlistElement = employees.element("ServerList");
        List<Element> serverElementList = serlistElement.elements("server");
        List<ServerInfo> ServerInfoList = new LinkedList<ServerInfo>();
        for(Element serverElement:serverElementList){    
        	ServerInfoList.add(new ServerInfo(serverElement.element("ip").getText(),serverElement.element("servicePort").getText(),serverElement.element("webPort").getText(),serverElement.element("serverType").getText())); 
       }
        return ServerInfoList;
	}

  

你可能感兴趣的:(dom4j)