XML解析代码课堂讲解实例
来源:互联网 发布:栅格数据 查找工具 编辑:程序博客网 时间:2024/05/16 11:57
//获取所有的子元素,不包括回车
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();
}
}
}
“`
- XML解析代码课堂讲解实例
- Python实例讲解 -- 解析xml
- xml解析代码实例
- dom4j解析xml 文件 详细 讲解 有 实例
- PHP XML解析之DOMDocument 方法实例讲解
- SAX解析XML文件实例代码
- Python解析XML正确应用代码示例讲解
- XML解析技术之VTD-XML 简介及代码实例
- XML解析技术之VTD-XML 简介及代码实例 .
- XML解析技术之VTD-XML 简介及代码实例
- XML解析技术之VTD-XML 简介及代码实例
- XML解析技术之VTD-XML 简介及代码实例
- XML解析技术之VTD-XML 简介及代码实例
- 精彩实例讲解:用EJB开发在线课堂
- JAVA操纵XML 实例讲解
- 脚本代码:实例解析Js+XML的操作方法
- JS中封装解析xml的代码,以及实例应用
- 脚本代码:实例解析Js+XML的操作方法
- android动画(2)自定义动画
- 矩阵的排序
- Reactor模式,或者叫反应器模式
- 数据结构之二叉树——相关问题总结
- 经典算法分析
- XML解析代码课堂讲解实例
- mvc js获取页面model里的值
- 概率和统计相关指令
- android 之系统本地获悉系统联系人
- POJ 3348 || Cows(求凸包面积
- C++随机数与hadoop stream 排序
- Android 中content的使用
- 最大子序列和问题
- bzoj-1227 虔诚的墓主人