Dom4J操作XML
来源:互联网 发布:跟美团众包类似软件 编辑:程序博客网 时间:2024/06/06 16:43
XML文档:
<?xml version="1.0" encoding="UTF-8"?><exam> <student idcard="111" examid="222"> <name>张三</name> <num>200</num> <num>200</num> <location>长沙</location> <tel exe="0734">111222</tel> <tel>123353453</tel> </student> <student idcard="333" examid="444"> <name>李四</name> <location>衡阳</location> <grade>98</grade> <tel exe="0734">333444</tel> <tel>你好333444</tel> </student> </exam>
操作代码:
public class Dom4jDemo {@SuppressWarnings("unchecked")public void readXml() throws Exception {SAXReader reader = new SAXReader(); Document document = reader.read(Dom4jDemo.class.getClassLoader().getResourceAsStream("student.xml"));// Document document = reader.read(new FileInputStream( new File("src/student.xml")));//Document document = reader.read(new File("src/student.xml"));// 获得XML文档的根节点Element element = document.getRootElement();// System.out.println(element.getName());// 得到根节点的所有直接孩子接点List<Element> elementList = element.elements();for (Element ele : elementList) {// 获得接点的属性String idcard = ele.attributeValue("idcard");String examid = ele.attributeValue("examid");System.out.println(ele.getName() + ":" + "学号" + idcard + ";准考证号:" + examid);// 获得每个子节点的子节点List<Element> child = ele.elements();for (Element elechild : child) {// 获得子节点的文本值String value = elechild.getText();System.out.println(elechild.getName() + ":" + value);}}}/** * 添加接点 * * @throws Exception */public void addNode() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/student.xml"));//Element rootElement = document.getRootElement();List<Element> childElements = rootElement.elements();for (Element element : childElements) {String idcard = element.attributeValue("idcard");String examid = element.attributeValue("examid");// 创建新接点Element newElement = DocumentHelper.createElement("tel");// 为新节点设置文本值newElement.setText("你好" + idcard + examid);// newElement.setAttributeValue("exe", "0734");element.add(newElement);}// 设置编码,FileWriter一直都是gb2312编码的,就算设置的编码格式还是会有乱码// OutputFormat format = OutputFormat.createPrettyPrint();// format.setEncoding("utf-8");// 写入到新的XML文档里面去,更新XML文档XMLWriter writer = new XMLWriter(new FileOutputStream(new File("src/student.xml")));writer.write(document);writer.close();System.out.println("over");}/** * 删除接点 * * @throws Exception */public void delete() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/student.xml"));Element grade = (Element) document.getRootElement().element("student").element("grade");System.out.println(grade.getName());//获得这个节点的父节点然后将其删除grade.getParent().remove(grade);OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"), format);writer.write(document);writer.close();}/** * 更新数据 * * @param args */public void update() throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File("src/student.xml"));Element price = (Element) document.getRootElement().element("student").elements("tel").get(1);price.setText("123353453");OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"), format);writer.write(document);writer.close();System.out.println("over");}/** * 向指定位置插入节点 * @param args */@SuppressWarnings("unchecked")public void add2() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/student.xml"));Element num = DocumentHelper.createElement("num");num.setText("200");List list = document.getRootElement().element("student").elements();list.add(1, num);//在索引为一的位置插入这个节点OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"),format);writer.write(document); writer.close();System.out.println("over");}public static void main(String[] args) {Dom4jDemo demo = new Dom4jDemo();try { demo.readXml();// demo.addNode();// demo.delete();//demo.update();//demo.add2();} catch (Exception e) {e.printStackTrace();}}}
- java+dom4j操作XML
- dom4j的xml操作
- Dom4j操作XML文件
- Dom4j操作XML
- Dom4j操作xml
- xml文件操作(dom4j)
- 使用DOM4J操作xml
- dom4j操作xml大全
- dom4j 操作xml
- Dom4J操作XML
- DOM4J操作XML
- dom4j xml操作
- Dom4J操作Xml
- 使用dom4j操作xml
- Dom4j 操作XML
- JDOM、Dom4j操作XML
- dom4j 操作 xml
- dom4j操作xml
- Application、Activity Stack 和 Task的区别
- activitygroup里被管理的所有activity的onactivityresult失效问题
- Vim命令合集
- win8和ubuntu13.10 双系统时间错误
- 最长不重复子串
- Dom4J操作XML
- vs中生成xml注释
- 1024! 末尾有多少个0?
- 网络基础
- App怎么推广最有效
- 《算法跬步》快速排序
- JAVA本地调用
- Winsock简介
- HDU-3191 How Many Paths Are There 次最短路