<?xml version="1.0" encoding="GBK"?>
<!--这是一个保存学生信息的XML文档-->
<students>
<student id="1">
<name>zhangsan</name>
<sex>man</sex>
<age>20</age>
</student>
<student id="2">
<name>lisi</name>
<sex>lady</sex>
<age>21</age>
</student>
</students>--------------------package com.xml.dom4j;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.LinkedList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;public class ParseXml
{
/**
* 方法创建一个XML文件,并设置文件节点。
* @param 无参数
* @return void 无返回
* @exception try IOException
*/
public static void dom4jCreateXml()
{
Document doc = DocumentHelper.createDocument();
doc.addComment("这是一个保存学生信息的XML文档");
Element root = doc.addElement("students");
Element stuEle = root.addElement("student");
stuEle.addAttribute("id", "1");
Element nameEle = stuEle.addElement("name");
nameEle.setText("zhangsan");
Element sexEle = stuEle.addElement("sex");
sexEle.setText("man");
Element ageEle = stuEle.addElement("age");
ageEle.setText("20");
Writer out;
try
{
out = new FileWriter("src/student.xml");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter writer = new XMLWriter(out, format);
writer.write(doc);
writer.close();
System.out.print("生成XML文件成功");
}
catch (IOException e)
{
System.out.print("生成XML文件失败5ee4463499dUadhh");
e.printStackTrace();
}
}
/**
* 方法用于为XML添加一个节点
* @param 无参数
* @return void 无返回类型
* @exception throws DocumentException, IOException
*/
public static void addElement() throws DocumentException, IOException
{
File file = new File("src/student.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
Element stuEle = root.addElement("student");
stuEle.addAttribute("id", "2");
Element nameEle = stuEle.addElement("name");
nameEle.setText("lisi");
Element sexEle = stuEle.addElement("sex");
sexEle.setText("nv");
Element ageEle = stuEle.addElement("age");
ageEle.setText("21");
XMLWriter writer = new XMLWriter(new FileWriter(file));
writer.write(doc);
writer.close();
}
/**
* 方法用于修改某个节点的属性或值
* @param 无参数
* @return void 无返回
* @exception throws DocumentException, IOException
* */
@SuppressWarnings("unchecked")
public static void modifyElement() throws DocumentException, IOException
{
LinkedList l;
File file = new File("src/student.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
List<Element> student = root.elements("student");
for (int i = 0; i < student.size(); i++)
{
if (student.get(i).attributeValue("id").equals("2"))
{
student.get(i).element("name").setText("wangwu");
XMLWriter writer = new XMLWriter(new FileWriter(file));
writer.write(doc);
writer.close();
break;
}
}
}
/**
* 方法用于删除文件中的某个节点
* @param 无参数
* @return void 无返回
* @exception throws DocumentException, IOException
* */
@SuppressWarnings("unchecked")
public static void deleteElement() throws DocumentException, IOException
{
File file = new File("src/student.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
List<Element> student = root.elements("student");
for (Element ele : student)
{
if (ele.attributeValue("id").equals("2"))
{
root.remove(ele);
XMLWriter writer = new XMLWriter(new FileWriter(file));
writer.write(doc);
writer.close();
break;
}
}
}
/**
* 方法用于读取整个XML文件,显示各个节点的值
* @param 无参数
* @return void 无返回类型
* @exception throws DocumentException
* */
@SuppressWarnings( { "unused", "unchecked" })
private static void dom4jReadXml() throws DocumentException
{
File file = new File("src/student.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
List<Element> list = root.elements("student");
for (Element ele : list)
{
String name = ele.elementText("name");
String age = ele.elementText("age");
String sex = ele.elementText("sex");
System.out.println(name + " " + age + " " + sex);
}
}
}
解决方案 »
- Socket通信的ip选择。
- mvc的启动原理
- 求救~上传下载的问题。
- 请问如何在这个页面中得到request对象
- 请问各位大虾:用jsp如何连接SQL数据库。书上说是要安装BEA Welogic Server 8.1 是这样吗?跟JavaBean有什么关系?
- 开源喽,特别适合新手学习的一个系统。附有一个快速入门计划!
- 如果不整合 Apache和 tomcat,只用Tomcat(在线等)
- 请问如何在jsp中取得当前日期的前十天?
- Bean里可以用session和application吗?如何用?
- java JMVC模式 执行SQL语句 返回值为NULL?
- oscache 缓存 action
- 突然出现的莫名其妙的问题
http://www.developer.com/xml/article.php/3397691/Does-StAX-Belong-in-Your-XML-Toolbox.htm经那里表格比较 StAX 是最为有效的。StAX 是 JSR 173,原本是 Java EE 中的组件,但在 JDK 1.6 中已经将其纳入到 J2SE 中,StAX 的 API 位于 javax.xml.stream 包中,有兴趣的话可以去看看。目前基于 SOAP XML 的 WebServices 框架基本上都是采用 StAX 来解析的。
什么叫小菜 你刚学java的时候这是小菜吗 做人要谦虚 每个人开始不都是菜鸟吗
目前在国内 dom4j+xpath是解析XML的主要手段
但dom4j在解析大文件是,耗的内存是想到大的
向LZ 推荐vtd
以下链接是介绍
http://www.jz123.cn/text/106607.html