- 浏览: 53436 次
- 性别:
- 来自: 武汉
最新评论
-
Stark_Summer:
很好 顶顶
android 面试题经典 -
fff32165:
LZ好牛啊!膜拜ing
activity与service的交互
package com.mgear.domparse;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class magicalXML {
public static void main(String[] args) throws ParserConfigurationException {
magicalXML u = new magicalXML();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
try {
// 读取源文件,如果不存在就创建一个新的给它
File f = new File("d:\\magical123.xml");
Document d = db.parse(f);
TransformerFactory tfFac = TransformerFactory.newInstance();
Transformer tf = tfFac.newTransformer();
tf.setOutputProperty(OutputKeys.ENCODING,"gb2312");
tf.setOutputProperty(OutputKeys.INDENT,"yes");
StreamResult result = new StreamResult(System.out);
DOMSource source = new DOMSource(d);
System.out.println("修改前的XML:");
tf.transform(source, result);
System.out.println();
// 打印元素名称和文本值
u.read(d);
// 为书名为"java basic"的作者增加属性sex
u.add(d, "java basic", "sex", "man");
// 修改书名为"java basic"的作者为"magicalboy"
u.update(d, "java basic", "magicalboy");
// 删除书名为"java basic"的作者元素
u.delete(d, "java basic");
System.out.println("修改后的XML:");
tf.setOutputProperty("encoding", "GB2312");
tf.transform(source, result);
// 保存修改后的xml文件
tf.transform(source, new StreamResult(
new File("d:\\magical123.xml")));
} catch (SAXException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
// 创建xml
Document dl = db.newDocument();
u.create(dl);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 创建方法
public void create(Document d) {
Element pub = d.createElement("publication");
Element book = d.createElement("book");
Element title = d.createElement("Title");
Element author = d.createElement("Author");
title.appendChild(d.createTextNode("java basic"));
author.appendChild(d.createTextNode("john"));
book.appendChild(title);
book.appendChild(author);
pub.appendChild(book);
book = d.createElement("book");
title = d.createElement("Title");
author = d.createElement("Author");
title.appendChild(d.createTextNode("magicalbook"));
author.appendChild(d.createTextNode("枫叶"));
book.appendChild(title);
book.appendChild(author);
pub.appendChild(book);
// 增加到根节点
d.appendChild(pub);
try {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer f = tf.newTransformer();
f.setOutputProperty("encoding", "GB2312");
System.out.println("正在创建新的xml...");
f.transform(new DOMSource(d), new StreamResult(new File(
"d:\\magical123.xml")));
System.out.println("创建新的xml成功!新的xml如下:");
f.transform(new DOMSource(d), new StreamResult(System.out));
} catch (Exception e) {
e.printStackTrace();
}
}
// 读取元素名称和文本值方法
public void read(Document d) {
NodeList nl = d.getElementsByTagName("*"); // 取所有结点
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getFirstChild().getNodeType() == Node.ELEMENT_NODE)
System.out.println("元素名称:" + nl.item(i).getNodeName());
else {
System.out.println("元素名称:" + nl.item(i).getNodeName());
System.out.println("文本值:" + nl.item(i).getTextContent());
}
}
}
// 元素增加属性方法
public void add(Document d, String title, String attr, String value) {
NodeList nl = d.getElementsByTagName("Title");
Node n;
Element author;
for (int i = 0; i < nl.getLength(); i++) {
n = nl.item(i);
author = (Element) n.getNextSibling().getNextSibling();
if (title.equals(n.getFirstChild().getNodeValue())) {
System.out.println("为元素" + author.getNodeName() + "增加" + attr
+ "属性:" + value);
author.setAttribute(attr, value);
}
}
}
// 修改方法
public void update(Document doc, String title, String author) {
NodeList nl = doc.getElementsByTagName("Title");
String strNode;
Element e;
// Node n;
// System.out.println("有" + nl.getLength() + "个book节点");
try {
for (int i = 0; i < nl.getLength(); i++) {
e = (Element) nl.item(i);
// n = nl.item(i);
strNode = e.getFirstChild().getNodeValue();
// System.out.println(strNode);
// strNode = n.getFirstChild().getNodeValue();
// System.out.println(strNode);
if (title.equals(strNode)) {
Element Eauthor = (Element) e.getNextSibling()
.getNextSibling();
System.out.println("修改前的Author:"
+ Eauthor.getFirstChild().getNodeValue());
Eauthor.getFirstChild().setNodeValue(author);
System.out.println("修改后的Author:"
+ Eauthor.getFirstChild().getNodeValue());
}
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
// 删除方法
public void delete(Document doc, String title) {
NodeList nl = doc.getElementsByTagName("Title");
Element e = doc.getDocumentElement();
Node n;
String strNode;
// System.out.println("\n有"+nl.getLength()+"个Title节点");
try {
for (int i = 0; i < nl.getLength(); i++) {
n = nl.item(i).getFirstChild();
strNode = n.getNodeValue();
// System.out.println(e.getNodeName());
// System.out.println(e.getFirstChild().getNextSibling().getNodeName());
// System.out.println(nl.item(i).getNodeName());
// System.out.println(strNode);
if (("java basic").equals(strNode)) {
System.out.println("\n准备要删除的书名为"
+ title
+ "的作者是:"
+ nl.item(i).getNextSibling().getNextSibling()
.getFirstChild().getNodeValue());
e.getFirstChild().getNextSibling().removeChild(
nl.item(i).getNextSibling().getNextSibling());
System.out.println("删除成功!");
}
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
}
转载自:http://6377936.blog.163.com/blog/static/3922283420094213950566/
发表评论
-
图的邻接矩阵实现
2019-11-12 09:24 0package com.iflytek.basejava.g ... -
有无向环图的邻接表实现
2019-11-05 22:54 0package com.pl.exercise.datast ... -
测试代码
2019-09-10 23:00 0package com.pl.exercise.datast ... -
解决使用通配符%或_,进行查询时可以查出所有数据的问题
2019-08-16 17:39 13061.对与标题中提到的问题,相信很多有点经验的web端开发者 ... -
设计模式
2013-03-05 20:31 0http://www.cnblogs.com/whgw/ar ... -
Java 引用 WeakReference
2013-03-04 10:25 0Reference 是一个抽象类,而 SoftReferen ... -
表达式计算
2012-09-16 15:39 0package com.mgear.pl; import j ... -
java基础之父类子类,static方法,构造函数 编译调用的优先顺序
2012-05-10 21:54 1035package dd; class Person { ... -
Hashtable和Hashmap的用法和运用
2012-05-08 22:04 851Hashtables提供了一个很 ... -
配置jdk环境变量
2011-06-19 13:07 628以jdk1.4.2_09为例,你可以根据你的jdk版本号及安装 ... -
关于 XML standalone 的解释
2011-05-24 16:04 1019今天做一个xml测试的时候 老是报 “XML 声明 ...
相关推荐
换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 ->操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的...
解析,修改,以及删除并写到硬盘上删除与修改xml文件 把操作后的内容,写到硬盘上
用dom4j解析XML的基础问题,包括建立XML文档,添加、修改、删除节点,以及格式化(美化)输出和中文问题。可作为dom4j的入门资料。
XML+DOM+解析和生成+教程 - 本资源是一个XML的教程,教你如何用Java的DOM技术解析和生成XML文档,包括创建和遍历节点,修改和删除属性,添加和删除元素等。
功能:创建XML文件的根节点 参数:[in] sName 根节点的节点名 返回:true创建成功 false创建失败 **************************************/ bool CreateRootNode(CString sName); /************************...
NULL 博文链接:https://lancijk.iteye.com/blog/972592
前台页面展示用zTree插件,后台数据用XML保存,利用Dom4j进行解析,涉及到了对XML的增、删、改等等特别需求的技术,并用struts2+spring进行整合项目,源代码中有非常完整的注释,导入myEclipse部署运行,即可从...
本系统实现了一个基于DOM的XML生成器和解析器。以树形结构显示了XML文档各节点的关系。点击节点时,可以显示节点的各种信息,还可以对节点进行增加、删除、修改。总之,可以很方便的操作XML文档。
功能说明:对附件的xml文件进行解析,获取到指定字段。并且可以更新字段、添加和删除字段。 详细介绍请看http://sonicning.blogbus.com/logs/36726735.html
工程包括 DOM4J 处理 xml 全过程(读取,增加,修改,删除) 内包括 xml, java解析类,要用到的包,附详细注释 希望給大家学习解析xml提供点点补助! [在IBM developerWorks上面可以找到一篇文章,对主流的Java XML...
主要是Qt5 对XML文件的解析。 有解析,重点是增加,删除,查询,修改功能。 还是很简单的,希望对大家有帮助。
XML 是允许使用者自定义标记描述数据元素,突破了HTML 固定标记集合约束的语言, DOM 是处理XML 文档的... 可使用DOM 规范解析XML 文档的数据元素, 将提取出的内容导入到构件库中, 作为构件描述信息, 从而实现构件
前台页面展示用zTree插件,后台数据用XML保存,利用Dom4j进行解析,涉及到了对XML的增、删、改等等特别需求的技术,并用struts2+spring进行整合项目,源代码中有非常完整的注释,导入myeclipse部署运行,即可从...
解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。 DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了。 优点:整个文档读入内存,...
将XML文件中所有内容以DOM树形式存放在内存中,支持删除、修改等功能。缺点是消耗内存较大。 三种解析方式 DOM解析 逐行扫描XML文件,读取文件的同时即可进行解析处理,不必等到文件加载结束。缺点是无法进行增、删...
8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。 9) W3C组织在1998年2月10日发布XML1.0版,第二个版本发布于2000年10月9日。 10)XML是分层的树形结构的自解释的一种可扩展的标记...
收集于网络的dom4j解析使用,包括创建,修改,删除等并且有jar文件一同上传
} <br> /** * 修改XML文件中内容,并另存为一个新文件 * 重点掌握dom4j中如何添加节点,修改节点,删除节点 * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件 * @...
该系统采用MVC架构,使用Java Swing编写用户界面,使用DOM4J解析和操作XML文件存储数据。 系统主要包含以下模块: 登录注册模块:用户可以在该模块中进行注册和登录操作,登录成功后才能使用系统的其他功能。 ...