- 浏览: 955371 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
java操作DOM节点的添加,删除,修改
下面我们开始对此xml添加,删除,修改:方法一
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class DOMConvert
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("students.xml");
//------------------添加节点------------------
//创建表示一个学生信息的各元素节点
Element eltStu=doc.createElement("student");
Element eltName=doc.createElement("name");
Element eltAge=doc.createElement("age");
//创建<student>元素的sn属性节点
Attr attr=doc.createAttribute("sn");
attr.setValue("03");
//创建代表学生信息的文本节点
Text txtName=doc.createTextNode("王五");
Text txtAge=doc.createTextNode("19");
//将文本节点添加为对应的元素节点的子节点
eltName.appendChild(txtName);
eltAge.appendChild(txtAge);
//将name和age节点添加为student节点的子节点
eltStu.appendChild(eltName);
eltStu.appendChild(eltAge);
//为<student>元素添加sn属性节点
eltStu.setAttributeNode(attr);
//得到XML文档的根元素。
Element eltRoot=doc.getDocumentElement();
//将student节点添加为根元素的子节点
eltRoot.appendChild(eltStu);
NodeList nl=doc.getElementsByTagName("student");
//------------------删除节点------------------
Node nodeDel=nl.item(0);
nodeDel.getParentNode().removeChild(nodeDel);
//------------------修改节点------------------
//注意:NodeList对象是动态的,所以前面删除节点的操作会影响到NodeList对象,
//NodeList中的节点对象会重新进行排列,此时,索引为0的节点是先前节点
//列表中索引为1的节点。
Element eltChg=(Element)nl.item(0);
Node nodeAgeChg=eltChg.getElementsByTagName("age").item(0);
nodeAgeChg.getFirstChild().setNodeValue("22");
//输出修改后的学生信息。
for(int i=0;i<nl.getLength();i++)
{
Element elt=(Element)nl.item(i);
System.out.println("编号:"+elt.getAttribute("sn"));
Node nodeName=elt.getElementsByTagName("name").item(0);
Node nodeAge=elt.getElementsByTagName("age").item(0);
String name=nodeName.getFirstChild().getNodeValue();
String age=nodeAge.getFirstChild().getNodeValue();
System.out.print("姓名:");
System.out.println(name);
System.out.print("年龄:");
System.out.println(age);
System.out.println("------------------------------------------");
}
}
catch(ParserConfigurationException e){e.printStackTrace();}
catch(SAXException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
}
}
方法二:使用XSL转换实现
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class DOMConvert2
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("students.xml");
Element eltStu=doc.createElement("student");
Element eltName=doc.createElement("name");
Element eltAge=doc.createElement("age");
Attr attr=doc.createAttribute("sn");
attr.setValue("03");
Text txtName=doc.createTextNode("王五");
Text txtAge=doc.createTextNode("19");
eltName.appendChild(txtName);
eltAge.appendChild(txtAge);
eltStu.appendChild(eltName);
eltStu.appendChild(eltAge);
eltStu.setAttributeNode(attr);
Element eltRoot=doc.getDocumentElement();
eltRoot.appendChild(eltStu);
NodeList nl=doc.getElementsByTagName("student");
Node nodeDel=(Element)nl.item(0);
nodeDel.getParentNode().removeChild(nodeDel);
Element eltChg=(Element)nl.item(0);
Node nodeAgeChg=eltChg.getElementsByTagName("age").item(0);
nodeAgeChg.getFirstChild().setNodeValue("22");
//利用文档节点创建一个DOM输入源
DOMSource source=new DOMSource(doc);
//以converted.xml文件构造一个StreamResult对象,用于保存转换后结果。
StreamResult result=new StreamResult(new File("converted.xml"));
//得到转换器工厂类的实例
TransformerFactory tff = TransformerFactory.newInstance();
//创建一个新的转换器,用于执行恒等转换,
//即直接将DOM输入源的内容复制到结果文档中。
Transformer tf = tff.newTransformer();
//执行转换
tf.transform(source, result);
}
catch(ParserConfigurationException e){e.printStackTrace();}
catch(SAXException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
catch(TransformerConfigurationException e){e.printStackTrace();}
catch(TransformerException e){e.printStackTrace();}
}
}
//students.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="students.xsl" target="_blank" rel="nofollow">
<students>
<student sn="01">
<name>张三</name>
<age>18</age>
</student>
<student sn="02">
<name>李四</name>
<age>20</age>
</student>
</students>
下面我们开始对此xml添加,删除,修改:方法一
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class DOMConvert
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("students.xml");
//------------------添加节点------------------
//创建表示一个学生信息的各元素节点
Element eltStu=doc.createElement("student");
Element eltName=doc.createElement("name");
Element eltAge=doc.createElement("age");
//创建<student>元素的sn属性节点
Attr attr=doc.createAttribute("sn");
attr.setValue("03");
//创建代表学生信息的文本节点
Text txtName=doc.createTextNode("王五");
Text txtAge=doc.createTextNode("19");
//将文本节点添加为对应的元素节点的子节点
eltName.appendChild(txtName);
eltAge.appendChild(txtAge);
//将name和age节点添加为student节点的子节点
eltStu.appendChild(eltName);
eltStu.appendChild(eltAge);
//为<student>元素添加sn属性节点
eltStu.setAttributeNode(attr);
//得到XML文档的根元素。
Element eltRoot=doc.getDocumentElement();
//将student节点添加为根元素的子节点
eltRoot.appendChild(eltStu);
NodeList nl=doc.getElementsByTagName("student");
//------------------删除节点------------------
Node nodeDel=nl.item(0);
nodeDel.getParentNode().removeChild(nodeDel);
//------------------修改节点------------------
//注意:NodeList对象是动态的,所以前面删除节点的操作会影响到NodeList对象,
//NodeList中的节点对象会重新进行排列,此时,索引为0的节点是先前节点
//列表中索引为1的节点。
Element eltChg=(Element)nl.item(0);
Node nodeAgeChg=eltChg.getElementsByTagName("age").item(0);
nodeAgeChg.getFirstChild().setNodeValue("22");
//输出修改后的学生信息。
for(int i=0;i<nl.getLength();i++)
{
Element elt=(Element)nl.item(i);
System.out.println("编号:"+elt.getAttribute("sn"));
Node nodeName=elt.getElementsByTagName("name").item(0);
Node nodeAge=elt.getElementsByTagName("age").item(0);
String name=nodeName.getFirstChild().getNodeValue();
String age=nodeAge.getFirstChild().getNodeValue();
System.out.print("姓名:");
System.out.println(name);
System.out.print("年龄:");
System.out.println(age);
System.out.println("------------------------------------------");
}
}
catch(ParserConfigurationException e){e.printStackTrace();}
catch(SAXException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
}
}
方法二:使用XSL转换实现
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class DOMConvert2
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse("students.xml");
Element eltStu=doc.createElement("student");
Element eltName=doc.createElement("name");
Element eltAge=doc.createElement("age");
Attr attr=doc.createAttribute("sn");
attr.setValue("03");
Text txtName=doc.createTextNode("王五");
Text txtAge=doc.createTextNode("19");
eltName.appendChild(txtName);
eltAge.appendChild(txtAge);
eltStu.appendChild(eltName);
eltStu.appendChild(eltAge);
eltStu.setAttributeNode(attr);
Element eltRoot=doc.getDocumentElement();
eltRoot.appendChild(eltStu);
NodeList nl=doc.getElementsByTagName("student");
Node nodeDel=(Element)nl.item(0);
nodeDel.getParentNode().removeChild(nodeDel);
Element eltChg=(Element)nl.item(0);
Node nodeAgeChg=eltChg.getElementsByTagName("age").item(0);
nodeAgeChg.getFirstChild().setNodeValue("22");
//利用文档节点创建一个DOM输入源
DOMSource source=new DOMSource(doc);
//以converted.xml文件构造一个StreamResult对象,用于保存转换后结果。
StreamResult result=new StreamResult(new File("converted.xml"));
//得到转换器工厂类的实例
TransformerFactory tff = TransformerFactory.newInstance();
//创建一个新的转换器,用于执行恒等转换,
//即直接将DOM输入源的内容复制到结果文档中。
Transformer tf = tff.newTransformer();
//执行转换
tf.transform(source, result);
}
catch(ParserConfigurationException e){e.printStackTrace();}
catch(SAXException e){e.printStackTrace();}
catch(IOException e){e.printStackTrace();}
catch(TransformerConfigurationException e){e.printStackTrace();}
catch(TransformerException e){e.printStackTrace();}
}
}
//students.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="students.xsl" target="_blank" rel="nofollow">
<students>
<student sn="01">
<name>张三</name>
<age>18</age>
</student>
<student sn="02">
<name>李四</name>
<age>20</age>
</student>
</students>
发表评论
-
session知识点
2012-04-29 19:56 1286session的作用,生命周期 session的原理 sess ... -
多线程Socket实用例子
2012-04-15 11:55 1067文章路径:http://javasam.iteye.com/b ... -
Cookie安全漫谈
2012-04-14 15:22 906在 Web 应用中,Cookie 很 ... -
HTTP 协议详解
2012-04-14 15:20 1003文章链接:http://kb.cnblogs. ... -
Jquery也是实现Ajax
2012-03-09 21:31 1035在上一篇介绍MVC中的Ajax实现方法的时候,曾经提到了除了使 ... -
json解析
2012-02-24 14:42 1386public class JsonUtil { /* ... -
jquery获取后台数据简单例题
2012-02-24 14:02 1195html部分: <!DOCTYPE HTML PUBL ... -
实现分布式session有几种办法
2012-02-16 16:18 1226实现分布式session有几种办法 各有什么优缺点 可以分 ... -
Cookie的使用
2012-01-31 23:57 863在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
张孝祥老师HTTP协议详解视频整理
2011-12-21 20:15 2697HTTP协议是每一位Web开发者都应该熟悉甚至精通的网络协议。 ... -
cookie的使用
2011-12-20 19:41 959在开发网站应用程序的过程中,使用cookie记录用户的一些信息 ... -
Web开发人员应当知道的15个开源项目
2011-12-19 11:30 955Web开发人员应当知道的15个开源项目 (2011-04-06 ...
相关推荐
Java DOM(Document Object Model)是Java处理XML文档的一种标准方式,它将XML文档解析成一个树形结构,每个XML元素、属性和文本内容都对应树中的一个节点。DOM提供了丰富的API,允许开发者对XML进行增、删、改、查...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
- 可以通过DOM树上的节点执行各种操作,如添加新元素、修改属性值、删除节点等。 #### 总结 DOM解析是Java中一种常用的处理XML文档的方式。它将整个文档加载到内存中,并通过DOM树的形式提供对文档内容的访问。...
你可以添加、删除或更新元素、属性,甚至可以移动节点。 4. **查询XML**:DOM4J支持XPath表达式,这是一种强大的查询语言,用于选取XML文档中的特定节点。通过`XPath`对象,你可以根据路径表达式找到文档中的任意...
Java中的DOM4J库是一个非常流行的XML处理工具,它提供了灵活且高效的API来解析、创建、修改和查询XML文档。DOM4J的名字来源于DOM(Document Object Model)和JDOM,它融合了两者的优势,提供了更丰富的功能和更好的...
根据提供的文件信息,我们可以归纳出以下关于DOM解析的基本操作,包括删除、修改及将操作结果写入硬盘等关键知识点。 ### DOM解析基本操作——删除与修改XML文件 #### 一、DOM简介 DOM (Document Object Model) 是...
8. **文档修改**:DOM4J提供了丰富的API,可以方便地添加、删除、替换和移动XML文档的元素、属性和文本节点。 9. **命名空间处理**:对于处理包含命名空间的XML文档,DOM4J提供了专门的处理机制,简化了命名空间...
4. **节点操作**:通过DOM,你可以查找、添加、删除或修改XML文档中的任何节点。例如,使用getElementsByTagName、getElementById等方法找到特定元素,使用appendChild、removeChild和setAttribute等方法进行修改。 ...
在给定的代码片段中,可以看到一系列关于XML节点操作的方法,包括查询所有节点、删除子节点、添加子节点以及更新子节点。下面分别对这些方法进行详细解析。 ##### 1. 查询所有节点(`selectAllNodes()`) - **创建...
在这个“dom4j的Java工程”中,我们可以看到一个示例项目,展示了如何利用DOM4J库进行XML文件的增、删、改、查操作。 首先,让我们深入了解DOM4J的基本概念。DOM4J采用了Document Object Model (DOM)接口,但它的...
3. **元素的操作**:`Element`类提供了添加、删除和修改子元素及属性的方法。例如,我们可以使用`createElement()`, `appendChild()`, `removeChild()`, `setAttribute()`等方法。 4. **属性的操作**:`Attr`类代表...
3. **修改XML**:通过`Element`对象的方法添加、删除或修改子元素、属性。 4. **保存XML**:修改完成后,使用`Writer`或`OutputStream`将XML树序列化回文件。 DOM4J因其简洁的API和高性能,成为Java开发者的首选XML...
Java提供了多种解析XML的API,其中DOM(Document Object Model)和DOM4j是常用的两种方法。本文将详细介绍这两种方式以及如何使用它们进行XML文档的增、删、改查操作。 一、DOM解析 DOM解析器将整个XML文档加载到...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且高效的API,使得开发者可以轻松地解析、创建、修改以及操作XML数据。在Java世界中,DOM4J是与DOM(Document Object Model)相媲美的一个选择,但它比...
通过上述内容,我们了解了dom4j的基本用法,包括解析、遍历、修改和序列化XML文档,以及使用XPath进行节点查询。在实际开发中,这些功能可以极大地简化XML处理任务。尽管dom4j-1.6.1.jar是一个较旧的版本,但其核心...
这篇博客主要探讨了如何使用DOM4J进行XML文档的操作,包括添加、删除和修改元素。下面将详细阐述DOM4J库的核心概念以及在XML操作中的具体应用。 DOM4J的全称是“Document Object Model for Java”,它是基于Java的...
3. **修改XML**:可以通过`Element`对象的方法添加、删除或修改元素和属性。 4. **保存XML**:创建`XMLWriter`对象,使用`write()`方法将修改后的XML写回文件。 **DOM4J与JavaWeb的关系:** 在JavaWeb开发中,DOM4J...
DOM解析器的优点在于提供了一种灵活且易于使用的API,可以方便地进行添加、删除和修改XML内容。以下是一个DOM解析的例子: ```java import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document...
4. **访问和修改元素**:可以使用`element.getText()`获取元素的文本,`element.attributeValue("attrName")`获取属性值,`element.addElement("newElement")`添加新元素,`element.remove()`删除元素。 5. **保存...