XML解析代码课堂讲解实例
//获取所有的子元素,不包括回车 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 org.w3c.dom.Document; 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){ } package com.dom; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; 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”); } “` (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |