使用dom4j
http://blog.leiling.com/calm/articles/2366.aspx
http://blog.leiling.com/calm/articles/2365.aspx
http://blog.leiling.com/calm/articles/2346.aspx
http://blog.leiling.com/calm/articles/2366.aspx
http://blog.leiling.com/calm/articles/2365.aspx
http://blog.leiling.com/calm/articles/2346.aspx
解决方案 »
- hibernate持久化操作的问题
- springMVC+JPA整合,数据库方言问题
- ERP系统数据库集成的问题
- 对spring security+ldap有经验的进来看看
- 如何设置javaee5的环境变量 可以在命令行下编译j2ee的各种东西
- 【高分急问】axis发送附件,soap中的resopnse应该是什么类型的?
- 大家对jsp+javabean+servlet struts的发展前途的看法!
- 求java JDBC教程文档和代码!
- java能不能打包成应用程序吗?高手指教
- 两个数据库,进行定时数据同步
- 一个通过JDBC连接SQLSERVER2000的简单问题,先来先得分。
- 读入多张jpg图片,如何将这几张图片合并成一张gif格式文件?
我看看先
是不是XML文件不适合这种数据库常用的操作呢?
为什么要写到一个新的文件?
你找到的那些例子也许只是说明如何写一个xml文件而已
* 创建日期 2004-10-14
*/
package com.zcjl.test.xml.jdom;import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;import org.jdom.CDATA;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.jdom.xpath.XPath;/**
* @author cong_zhang
*/
public class JDomDemo { public static void main(String[] args) {
//先生成根元素(root元素的名字不一定要叫做“root”,希望不要被我误导了)
Element root = new Element("root"); //开始生成子元素(存放数据)
Element aaa = new Element("aaa").addContent("aaaaa");
Element bbb = new Element("bbb").addContent("bbbbb");
bbb.setText("");
//生成一个CDATA对象
bbb.addContent(new CDATA("ccccc")); //把子元素都添加到root元素里面
root.addContent(aaa);
root.addContent(bbb); //生成Document对象(jdom对于xml文档的对应数据结构)
Document doc = new Document(root); //前面是用jdom生成一个完整的xml的过程 //下面开始写到xml文件中,假设为D:\mytest.xml
String xmlFile = "D:\\中文1&2.xml";
WriteToFile(doc, xmlFile, "GBK");
//看看是否生成xml到D:\mytest.xml了? //下面开始从文件中读取xml数据
//检查一下控制台打印的是否和文件中一致?
Document newDoc = ReadFromFile("D:\\中文1&2.xml");
System.out.println(print(newDoc)); //查询xml中的某一项数据,比如说bbb的值
//方法1,通过文档结构来查询:
Element bbb1 = newDoc.getRootElement()
.getChild("bbb");
System.out.println("bbb的值是: " + bbb1.getText()); //方法2,利用xpath:
try {
Element bbb2 = (Element) XPath.selectSingleNode(doc.getRootElement(), "//bbb");
System.out.println("bbb的值是: " + bbb2.getText());
} catch (JDOMException e) {
e.printStackTrace();
}
} public static String print(Document document, String encoding) {
ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
Format fmt = Format.getPrettyFormat();
fmt.setEncoding(encoding);
XMLOutputter docWriter = new XMLOutputter(fmt);
try {
docWriter.output(document, byteRep);
} catch (Exception e) {
e.printStackTrace();
}
return byteRep.toString();
} public static String print(Document document) {
return print(document, "GBK");
} //从文件中读取xml
public static Document ReadFromFile(String filePath) {
try {
Document anotherDocument = new SAXBuilder().build(new InputStreamReader(
new FileInputStream((filePath))));
return anotherDocument;
} catch (Exception e) {
e.printStackTrace();
return null;
}
} //把Document写到文件中
public static void WriteToFile(Document doc, String filePath,
String encoding) {
try {
Format fmt = Format.getPrettyFormat();
fmt.setEncoding(encoding);
XMLOutputter outputter = new XMLOutputter(fmt);
Writer writer = new OutputStreamWriter(new FileOutputStream(
filePath), encoding);
outputter.output(doc, writer);
writer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
但是,WriteToFile中里面是新建了个文件.代码中没有对XML文件读出后没有进行修改