xml的初始化及增删改查操作:
//初始化
private void btnInitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnInitActionPerformed
// TODO add your handling code here:
try {
File file = new File("books.xml");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.
newInstance();
DocumentBuilder builder = docFactory.newDocumentBuilder();
if (!file.exists()) {
doc = builder.newDocument();
Element books = doc.createElement("books");
doc.appendChild(books);
} else {
doc = builder.parse(file);
}
this.jTextArea1.setText("初始化完成");
} catch (Exception ex) {
this.jTextArea1.setText("初始化失败");
}
}//GEN-LAST:event_btnInitActionPerformed
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
// TODO add your handling code here:
try {
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("books.xml"));
transformer.transform(source, result);
this.jTextArea1.setText("保存成功");
} catch (Exception ex) {
this.jTextArea1.setText("保存失败");
}
}//GEN-LAST:event_btnSaveActionPerformed
private void btnShowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowActionPerformed
// TODO add your handling code here:
if (doc != null) {
Element books = doc.getDocumentElement();
this.jTextArea1.setText(books.getNodeName());
NodeList nl = null;
nl = books.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node node = nl.item(i);
//节点类型,元素1/属性2/文本3/注释8/文档9
if (node.getNodeType() == 1) {
this.jTextArea1.append("\n\t" + node.getNodeName());
NodeList nsubs = node.getChildNodes();
for (int j = 0; j < nsubs.getLength(); j++) {
if (nsubs.item(j).getNodeType() == 1 &&
nsubs.item(j).getFirstChild() != null) {
this.jTextArea1.append("\n\t\t" +
nsubs.item(j).getNodeName() + " : " +
nsubs.item(j).getFirstChild().
getNodeValue());
}
}
}
}
}
}//GEN-LAST:event_btnShowActionPerformed
private void btnShow2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShow2ActionPerformed
// TODO add your handling code here:
String msg = "";
if (doc != null){
NodeList nl = doc.getElementsByTagName("*");
for (int i=0;i<nl.getLength();i++){
Element e = (Element)nl.item(i);
//得到属性
NamedNodeMap nnm = e.getAttributes();
msg += "元素:" + e.getNodeName() +":" + e.getFirstChild().getNodeValue() + "\n";
for (int k=0;k<nnm.getLength();k++){
Attr att = (Attr)nnm.item(k);
msg += "\t属性有\t"+ att.getNodeName() + ":" + att.getNodeValue()+"\n";
}
}
}
this.jTextArea1.setText(msg);
}//GEN-LAST:event_btnShow2ActionPerformed
private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSearchActionPerformed
// TODO add your handling code here:
Node node = Search(this.jTextField1.getText());
if (node != null) {
this.jTextArea1.setText("找到了此元素");
this.jTextArea1.append("\n\t书籍编号 \t: " + this.jTextField1.getText());
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node sub = list.item(i);
if (sub.getNodeType() == 1 && sub.getFirstChild() != null) {
this.jTextArea1.append("\n\t" + sub.getNodeName() + " \t: " +
sub.getFirstChild().getNodeValue());
}
}
}
else {
this.jTextArea1.setText("找不到此元素");
}
}//GEN-LAST:event_btnSearchActionPerformed
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed
// TODO add your handling code here:
try {
//创建元素
Element elemBook = doc.createElement("book");
//添加到根元素底下
doc.getDocumentElement().appendChild(elemBook);
//为book元素设置属性
Attr attrId = doc.createAttribute("id"); //创建
attrId.setNodeValue(this.jTextField1.getText()); //设置值
elemBook.setAttributeNode(attrId); //设置到book元素
//为book元素添加子元素name
Element elemNode = doc.createElement("name"); //创建
Text textNode = doc.createTextNode(this.jTextField2.getText()); //创建文本节点
elemNode.appendChild(textNode); //为name子元素指定文本
elemBook.appendChild(elemNode); //添加为book的子元素
//为book元素添加子元素price
elemNode = doc.createElement("price"); //创建
textNode = doc.createTextNode(this.jTextField3.getText()); //创建文本节点
elemNode.appendChild(textNode); //为price子元素指定文本
elemBook.appendChild(elemNode); //添加为book的子元素
//为book元素添加子元素pub
elemNode = doc.createElement("pub"); //创建
textNode = doc.createTextNode(this.jTextField4.getText()); //创建文本节点
elemNode.appendChild(textNode); //为pub子元素指定文本
elemBook.appendChild(elemNode); //添加为book的子元素
//为book元素添加子元素author
elemNode = doc.createElement("author"); //创建
textNode = doc.createTextNode(this.jTextField5.getText()); //创建文本节点
elemNode.appendChild(textNode); //为author子元素指定文本
elemBook.appendChild(elemNode);
this.jTextArea1.setText("添加成功");
} catch (Exception ex) {
this.jTextArea1.setText("添加失败");
}
}//GEN-LAST:event_btnAddActionPerformed
private void btnModifyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModifyActionPerformed
// TODO add your handling code here:
Node node = Search(this.jTextField1.getText());
String[] values = {this.jTextField2.getText(), this.jTextField3.getText(),
this.jTextField4.getText(), this.jTextField5.getText()};
if (node != null) {
NodeList nl = node.getChildNodes();
int k = 0;
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
if (n.getNodeType() == 1) {
Node newNode = doc.createTextNode(values[k]);
if (n.getFirstChild() != null) {
n.replaceChild(newNode, n.getFirstChild());
} else {
n.appendChild(newNode);
}
k = k + 1;
}
}
this.jTextArea1.setText("修改成功");
} else {
this.jTextArea1.setText("找不到要修改的节点");
}
}//GEN-LAST:event_btnModifyActionPerformed
private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDelActionPerformed
// TODO add your handling code here:
Node node = Search(this.jTextField1.getText());
if (node != null) {
Node parent = node.getParentNode();
parent.removeChild(node);
this.jTextArea1.setText("删除成功");
} else {
this.jTextArea1.setText("找不到要删除的节点");
}
}//GEN-LAST:event_btnDelActionPerformed
private Node Search(String id) {
Node node = null;
Element books = doc.getDocumentElement();
NodeList nl = null;
if (books.hasChildNodes()) {
nl = books.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
node = nl.item(i);
if (node.getNodeType() == 1) {
Element ele = (Element) node;
if (ele.getAttribute("id").equals(id)) {
return node;
}
}
}
}
return null;
}
分享到:
相关推荐
java实现对xml文件的增 删 改 查 操作
编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查。 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓名,学号进行查询。 要求列表输出...
Dom操作xml文件,增删改查的操作,三层架构设计,servlet,过滤器,利用单例模式开发
主要介绍了Java对XML文件增删改查操作,结合完整实例形式分析了java针对xml格式数据的常见读写、增删改查等操作技巧,需要的朋友可以参考下
HY增删改查代码生成工具。HY增删改查代码生成工具,快速生成crud应用,支持自定义模板扩展。适合后台管理应用的基本增删该查代码的生成,简单配置即可搞定一个单页增删改查应用!可以生成以下代码 html页面(默认 可...
代码主要是显示xml文件,之后对xml文件进行增删改查等操作
该文件是一页完整代码,它是使用dom4j对xml的解析,对xml的增删改差
项目概述:本项目采用Java语言,基于SSM(Spring、SpringMVC、MyBatis)框架,实现了一套完整的增删改查功能。项目共包含25个文件,其中14个XML配置文件,6个Java源代码文件,2个Git忽略配置文件,2个属性配置文件...
java图形界面实现对xml解析,从而实现xml的增删改查,类似将xml当做数据的存储介质。内附java工程,jar打包后的exe文件,运行速度有点慢,双击后稍等片刻即可显示,另外,此项目使用netbeansIDE编写,导入eclipse...
主要介绍了java使用DOM对XML文档进行增删改查操作实例代码,实例涉及对xml文档的增删改查,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
一个用于阅读XML 内容的JAVA程序,实现了对XML文件的增删改查!
基于MyBatis的XML配置文件的Java项目,可以进行基本的增删改查操作,使用JDBC连接数据库
简单的增删改查,实现java文件导出成xml文件
Java操作xml文件,对xml文件的增、删、改、查,简单的web应用,几个功能对应几个servlet
java调用oracle存储过程入门实例 增删改查 使用dom4j读取数据库的配置文件(xml) jdbc中connection的管理 使用threadlocal
本设计源码提供了一个基于Struts2和Hibernate的增删改查系统。项目包含58个文件,主要使用Java编程语言。...该系统适合用于学习和实践Java技术,以及开发基于Struts2和Hibernate的增删改查相关的系统。
主要介绍了Java使用dom4j实现对xml简单的增删改查操作,结合实例形式详细分析了Java使用dom4j实现对xml简单的增删改查基本操作技巧与相关注意事项,需要的朋友可以参考下
目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J. 2:JDOM 和DOM在性能测试时表现不佳,在测试10M文档时内存溢出。在小文档情况下还...
Apache Commons Configuration对properties、xml配置文件的【增删改查】及动态加载小案例。小编也是找了网上很多资源,综合研究了一下。被怪我黑!!!
此类教你们如何操作xml文档的,包括向xml文档添加节点,删除节点,修改节点,查询节点。