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; }