//获取所有的子元素,不包括回车
package com.dom4jDemo;

import java.io.File;
import java.util.List; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class Dom4jDemo1 { public static void main(String[] args) {
// TODO Auto-generated method stub
String path = "src/scores.xml";
File file = new File(path);
SAXReader saxReader = new SAXReader();
try {
Document doc = saxReader.read(file);
Element root = doc.getRootElement();
//获取所有的子元素,不包括回车
List<Element> eles = root.elements();
for(Element ele : eles){
System.out.println(ele.getName());
List<Element> children = ele.elements();
for(Element e : children){
System.out.println(e.getName() + "\t" + e.getText());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } DOM4j ``package com.dom4jDemo; import java.io.File;
import java.io.FileWriter;
import java.io.IOException; 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; public class Dom4jDemo2 { public static void main(String[] args) {
// TODO Auto-generated method stub
String path = "src/scores.xml";
File file = new File(path);
SAXReader saxReader = new SAXReader();
try {
Document doc = saxReader.read(file);
//获取根元素
Element root = doc.getRootElement();
//获取一个指定名字的子元素
Element eleStu = root.element("student");
//复制节点
Element newStu = (Element) eleStu.clone();
//获取子元素并设置值
newStu.element("id").setText("5");
newStu.element("name").setText("孙七");
newStu.element("lesson").setText("hibernate");
newStu.element("score").setText("92");
root.add(newStu);
//删除节点
root.remove(eleStu);
//设置输出编码
OutputFormat of = OutputFormat.createCompactFormat();
of.setEncoding("GBK");
//构建输出流对象
XMLWriter xw
= new XMLWriter(new FileWriter(file),of);
xw.write(doc);
xw.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

package com.dom;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

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 DomDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
//文件路径
String path = "src/scores.xml";
//创建解析器工厂
DocumentBuilderFactory dbf
= DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {//使用解析器工厂创建解析器
db = dbf.newDocumentBuilder();
//将XML文件映射成文档对象
Document doc = db.parse(path);
//根元素
Element root = doc.getDocumentElement();
System.out.println(root.getNodeName());
//获取所有的子元素,包含换行和标签元素
NodeList children = //root.getChildNodes();
//获取标签名为student的元素集合,不包括换行
root.getElementsByTagName("student");
for(int i = 0; i < children.getLength();i++){
Node node = children.item(i);
//跳过换行

// if(node.getNodeType() == Node.TEXT_NODE){

// continue;

// }

System.out.println(node.getNodeName() + “\t” + node.getNodeValue());

Element ele = (Element)node;

//获取子元素的子元素

NodeList childNodes = ele.getChildNodes();

for(int j = 0;j < childNodes.getLength();j++){

Node n = childNodes.item(j);

if(n.getNodeType() == Node.TEXT_NODE){

continue;

}

System.out.println(n.getNodeName() + “\t” + n.getTextContent());

}

System.out.println(childNodes.getLength());

}

System.out.println(“子元素的数量:” + children.getLength());

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

package com.dom;

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.xml.sax.SAXException;

public class DomDemo2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
String path = "src/scores.xml";
DocumentBuilderFactory dbf
= DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document doc = db.parse(path);
Element root = doc.getDocumentElement();
//第一种添加元素的办法

// Element eleStu = doc.createElement(“student”);

// Element eleId = doc.createElement(“id”);

// eleId.setTextContent(“3”);//设置文本值

// Element eleName = doc.createElement(“name”);

// eleName.setTextContent(“王五”);

// Element eleLesson = doc.createElement(“lesson”);

// eleLesson.setTextContent(“oracle”);

// Element eleScore = doc.createElement(“score”);

// eleScore.setTextContent(“78”);

// eleStu.appendChild(eleId);

// eleStu.appendChild(eleName);

// eleStu.appendChild(eleLesson);

// eleStu.appendChild(eleScore);

// root.appendChild(eleStu);//添加元素至根元素

//第二种添加元素的办法

//获取要添加的元素的模板,获取一个现有元素

Element eleStu = (Element) root.getElementsByTagName(“student”).item(0);

//复制现有元素创造一个新元素,包含换行

Element newEle = (Element) eleStu.cloneNode(true);

Node nodeId = newEle.getElementsByTagName(“id”).item(0);

nodeId.setTextContent(“4”);

Node nodeName = newEle.getElementsByTagName(“name”).item(0);

nodeName.setTextContent(“赵六”);

Node nodeLesson = newEle.getElementsByTagName(“lesson”).item(0);

nodeLesson.setTextContent(“JQuery”);

Node nodeScore = newEle.getElementsByTagName(“score”).item(0);

nodeScore.setTextContent(“88”);

root.appendChild(newEle);//添加元素至根元素

//保存文件

TransformerFactory tff =

TransformerFactory.newInstance();

Transformer tf = tff.newTransformer();

//设置要保存哪些内容到XML文件,默认是整个

DOMSource ds = new DOMSource(doc);

//设置保存编码

tf.setOutputProperty(OutputKeys.ENCODING, “UTF-8”);

StreamResult sr = new StreamResult(new FileOutputStream(path));

tf.transform(ds, sr);

System.out.println(“保存完成”);

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (TransformerConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (TransformerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

“`

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. ubuntu安装虚拟磁带库mhvtl
  2. Eclipse Android 解决Gen文件夹为空的问题
  3. silverlight Canvas、StackPanel、Grid三者之间的关系
  4. GitHub入门之一:使用github下载项目
  5. mongodb replica set(副本集)设置步骤
  6. android初学-togglebutton
  7. 手机端禁止iPhone字体放大
  8. 【LeetCode】【Python题解】Single Number &amp;amp; Maximum Depth of Binary Tree
  9. Activity启动过程分析
  10. ABAP 动态内表 动态ALV
  11. C语言第二次博客作业—分支结构
  12. Linux进程调度分析
  13. iOS12系统应用发送普通邮实现发送
  14. Inception部署
  15. thinkphp框架 的 链接数据库和操作数据
  16. redis批量删除key 远程批量删除key
  17. CF932E Team Work
  18. 关于requests的session方法保持cookie的问题。
  19. Device supprts x86,armeabi-v7a,but APK only aupports armeabi;模拟机不能运行。
  20. Spring RedisTemplate操作-事务操作(9)

热门文章

  1. 扩展 Yii2 自带的日志组件
  2. Python 3 常用模块之 一
  3. php使用mysql数据库时中文不显示或显示异常解决方法
  4. HDU 1533 Going home
  5. poj 2251 Dungeon Master-搜索进阶-暑假集训
  6. 分享知识-快乐自己:SSH 整合 Demo
  7. 与STL文件相关的各类学习地址
  8. 如何理解Box-sizing模型?
  9. spring-springMVC-MyBatis整合配置文件
  10. Linux-NoSQL之Redis(三)