1.导入dom4j.jar;
2.主代码:
<1>查询xml文件的数据:
(1)public void parseXml() throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
Element root = doc.getRootElement();
Iterator<Object> it_person = root.elementIterator();
while (it_person.hasNext()) {
Element person = (Element) it_person.next();
Iterator<Object> it_child = person.elementIterator();
int i = 0;
String[] str = new String[3];
while (it_child.hasNext()) {
Element p_info = (Element) it_child.next();
str[i] = p_info.getText();
i++;
}
System.out.println(str[0]+ "的性别:" + str[1] +","+ str[0]+ "的年
龄:" + str[2]);
}
}
(2)List persons = root.elements();//root同于上面的root
for (Object person : persons) {
Element p = (Element) person;
Iterator<Element> it_child = p.elementIterator();
int i = 0;
String[] str = new String[3];
while (it_child.hasNext()) {
Element p_info = (Element) it_child.next();
str[i] = p_info.getText();
i++;
}
System.out.println(str[0] + "的性别:" + str[1] + "," + str[0] + "的
年龄:"+ str[2]);
}
}
(3)public void parseXml2() throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
doc.accept(new VisitorSupport() {
public void visit(Element e) {
System.out.println(e.getText());
}
});
}
<4>创建xml文件
public void createDoc() throws IOException {
Document doc=DocumentHelper.createDocument();
doc.setXMLEncoding("gbk");
Element lib=doc.addElement("libary");//创建根节点libary
Element book=lib.addElement("book");
Element book_name=book.addElement("name");
book_name.setText("大话西游");
Element book_author=book.addElement("auther");
book_author.setText("周星驰");
XMLWriter xw = new XMLWriter(new FileWriter("d:/lib.xml"));
xw.write(doc);
xw.close();
OutputFormat of=OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("d:/lib.xml"),of);
xw.write(doc);
xw.close();
}
<5>向xml文件添加数据:
public void addElement(Element e) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
Element root = doc.getRootElement();
Element person = root.addElement("person");
Element pname = person.addElement("name");
pname.setText("aonier");
Element psex = person.addElement("sex");
psex.setText("male");
Element page = person.addElement("age");
page.setText("37");
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
<6>修改xml文件
(1)public void updateElement() throws DocumentException {
SAXReader reader = new SAXReader();
final Document doc = reader.read("src/person.xml");
doc.accept(new VisitorSupport() {
public void visit(Element e) {
if (e.getName().equals("age")&&null!=e.getName()
&&!("".equals(e.getName()))) {
int i = Integer.parseInt(e.getTextTrim())* 2;
e.setText(String.valueOf(i));
}
try {
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter(
"src/person.xml"), of);
xw.write(doc);
xw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
(2)导入jaxen-1.1.1.jar;
(3)public void updateElement2() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
List<Object> ages = doc.selectNodes("/class/person/age");
for (Object age : ages) {
Element eage = (Element) age;
int age2 = Integer.parseInt(eage.getText());
if (age2 > 50) {
eage.setText(age2 * 2 + "");
}
}
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
(4)添加属性:
public void addAttribute() throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
List ages = doc.selectNodes("/class/person/age");
for(Object a : ages){
Element age = (Element)a;
Date d = new Date();
d.setYear(d.getYear()- Integer.parseInt(age.getTextTrim()));
age.addAttribute("birth", d.toLocaleString());
}
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
分享到:
相关推荐
java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
python解析xml文件,python语言解析xml文件的常用的有两种方式: 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件
C++实现对xml文件的解析,C++实现对xml文件的解析,C++实现对xml文件的解析。
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml文件的,很有用的东东关于解析xml...
MFC解析XML文档类 MFC解析XML文档类 MFC解析XML文档类 MFC解析XML文档类
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
Sax解析XML文件解
资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版 内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...
开发环境为VC,基于对话框,用msxml组件解析XML文档,运用递归循环的方法实现树结构,支持中文,可以运行的一个实例。
解析XML文件例子
PHP解析XML文档,PHP解析XML文档,PHP解析XML文档
tinyxml解析XML文件
Java中如何解析XML文件,创建xml文件,增、删、改、查 xml节点信息
pull解析xml文件
关于jq读取xml的,有需要的朋友可以下载。
Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用