读写xml
import
java.io.File;
import
java.io.FileWriter;
import
java.io.IOException;
import
java.util.Iterator;
import
java.util.List;
import
org.dom4j.Document;
import
org.dom4j.DocumentException;
import
org.dom4j.Element;
import
org.dom4j.Node;
import
org.dom4j.io.OutputFormat;
import
org.dom4j.io.SAXReader;
import
org.dom4j.io.XMLWriter;
public
class
TestReadXml {
public
static
String getClassPath() {
return
XmlParser.
class
.getClass().getResource(
"/"
).toString();
}
public
static
void
ff() {
File f2 =
new
File(XmlParser.
class
.getResource(
""
).getPath());
System.
out
.println(f2);
}
public
static
void
main(String[] args) {
try
{
SAXReader reader =
new
SAXReader();
String xmlPath = System.getProperty(
"user.dir"
) +
"\\src\\test\\java\\test.xml"
;
File file =
new
File(xmlPath);
if
(file.exists()) {
Document document = reader.read(file);
Element root = document.getRootElement();
// 根据节点名获取节点
System.
out
.println(root.element(
"login"
).getTextTrim());
// 遍历节点
for
(Iteratori = root.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
System.
out
.println(element.asXML());
}
// 根据xpath根据节点名,节点属性查找指定的节点
List<Node> node1 =root.selectNodes(
"//p[@id='hehe']"
);
for
(Node n : node1) {
System.
out
.println(n.getName());
System.
out
.println(n.getText());
}
System.
out
.println(
"----------------------精确查找----------------------------------"
);
// 精确查找
List<Node> node2 =root.selectNodes(
"//div/p[@id='hi']"
);
for
(Node n : node2) {
System.
out
.println(n.getName());
System.
out
.println(n.getText());
}
//hh为xml节点名
Element hh = root.element(
"hh"
);
// 获取父节点
System.
out
.println(hh.getParent().getName());
// 设置节点的值
hh.setText(
"21"
);
System.
out
.println(hh.getText());
// 写入文件
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(
"utf-8"
);
XMLWriter writer =
new
XMLWriter(
new
FileWriter(xmlPath),format);
writer.write(document);
writer.close();
/*
* //获取子节点 System.out.println(hh.getNodeType());
* System.out.println(hh.getData());
* System.out.println(hh.getName());
* System.out.println(hh.getText());
* System.out.println(hh.getTextTrim()); hh.setText("21");
* System.out.println(hh.getTextTrim());
*/
}
}
catch
(DocumentException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
//参考网址:http://berdy.iteye.com/blog/807883
//