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