xml文件的增删改查
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.accp.xml.dom4j;
import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter; import java.io.Writer;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException; import org.dom4j.Element;
import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.dom4j.tree.DefaultDocument; import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* xml的增删改查示例
*
* @author
*
*/
public class XMLCrud {
/**
* 默认的构造方法
*
* @throws DocumentException
* @throws IOException
* @throws SAXException
*/
public XMLCrud() {
// Document doc = loadXML("class.xml"); //
// // 载入XML文档
// // System.out.println(doc.asXML());
//
// // 打印XML文档
// printDoc(doc);
//
// // 把XML文档存入硬盘
// storeDoc(doc, "new.xml");
// 新建xml文档对象
// Document doc1 = this.createDoc();
//
//
//
//
//
//
// //存入note.xml
// storeDoc(doc1, "note.xml");
// System.out.println(getStudentCount(doc));
/*
* // 校验dtd XML文档doc = valideDoc("class.xml");
*
* printDoc(doc); // 校验Schema文档doc =
* validateDocBySxd("classSchema.xml"); printDoc(doc);
*
* String url = getClass().getResource("/xml/dom4j/wkjava/class.xsd")
* .toString(); // 校验Schema文档(俩参数)doc =
* validateDocBySxd("classSchema.xml", url); printDoc(doc); //
* 创建Schema文档doc = createDoc(); storeDoc(doc, "root.xml"); doc =
* validateDocBySxd("classSchema.xml"); // 在文档中修改原属updateZip(doc, * "102202"); printDoc(doc);
*
* doc = validateDocBySxd("classSchema.xml"); // 打印文档中所有学生名字
* printNames(doc);
*
*
*/
}
public static void main(String[] args) {
XMLCrud xml = new XMLCrud();
xml.genXMLFile();
}
/**
* 装载xml文件,解析为dom文档对象
*
* @param xmlfile
* @return
* @throws FileNotFoundException
* @throws DocumentException
*/
public Document loadXML(String xmlfile) throws FileNotFoundException, DocumentException {
// 获得SAX的xml解析器
SAXReader reader = new SAXReader();
// 解析xml文件获得文档对象引用
Document doc = reader.read(new FileInputStream(xmlfile));
return doc;
}
/**
* 打印doc文档
*
* @param doc
* @throws IOException
*/
public void printDoc(Document doc) throws IOException {
// 创建字符输出流(输出目标为控制台System.out)
Writer out = new OutputStreamWriter(System.out, "utf-8");
// 创建输出格式对象
OutputFormat format = OutputFormat.createPrettyPrint();
// 由字符输出流对象和输出格式对象为参数创建xml输出对象
XMLWriter writer = new XMLWriter(out, format);
// 调用输出方法(如果输出目标为文件,则相当于保存xml文档)
writer.write(doc);
// 刷新输出流,清空缓存
out.flush();
}