java 生成和解析xml

本文主要使用的是Jdom.jar包(包的下载百度一下)实现了生成xml文件和解析xml文件

下面是生成xml的实现

说明:stuLists集合是一个存放着Student对象的集合

 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.util.ArrayList;
 6
 7 import org.jdom.Document;
 8 import org.jdom.Element;
 9 import org.jdom.input.SAXBuilder;
10 import org.jdom.output.Format;
11 import org.jdom.output.XMLOutputter;
12
13 public class AddXml {
14     public static void main(String[] args) {
15         new AddXml().changeXml();
16     }
17     public void changeXml(){
18         Jdbc jdbc =  new Jdbc();
19         jdbc.addList();
20         ArrayList<Student> stuLists = Jdbc.getStuList();
21
22         Document docu = new Document();
23         Element root = new Element("root");
24         docu.addContent(root);
25         for (int i = 0; i < stuLists.size(); i++) {
26 //            System.out.println(stuLists.get(i));
27             Student s = stuLists.get(i);
28
29             Element info = new Element("info");
30             Element student = new Element("student");
31             Element id = new Element("id");
32             Element name = new Element("name");
33             Element sex = new Element("sex");
34             Element age = new Element("age");
35
36             Element book = new Element("book");
37             Element bid = new Element("bid");
38             Element bname = new Element("bname");
39             Element bprice = new Element("bprice");
40             Element bautor = new Element("bautor");
41             book.addContent(bid);
42             book.addContent(bname);
43             book.addContent(bprice);
44             book.addContent(bautor);
45
46             student.addContent(id);
47             student.addContent(name);
48             student.addContent(sex);
49             student.addContent(age);
50             info.addContent(student);
51             info.addContent(book);
52
53             root.addContent(info);
54             int a = i+1;
55             String No = "000"+a;
56             student.setAttribute("No", No);
57             id.setText(s.getId());
58             name.setText(s.getName());
59             sex.setText(s.getSex());
60             age.setText(s.getAge());
61
62             String b="0"+a;
63             bid.setText(b);
64             bname.setText("java核心");
65             bprice.setText("1334.0");
66             bautor.setText("star");
67
68         }
69             //格式化生成的xml文件,如果不进行格式化的话,生成的xml文件将会是很长的一行...
70           Format format = Format.getCompactFormat();
71           format.setEncoding("utf-8");
72           format.setIndent("  ");
73         XMLOutputter xo = new XMLOutputter(format);
74         try {
75             xo.output(docu, new FileOutputStream(new File("e:/io/stu.xml")));
76         } catch (FileNotFoundException e) {
77             // TODO Auto-generated catch block
78             e.printStackTrace();
79         } catch (IOException e) {
80             // TODO Auto-generated catch block
81             e.printStackTrace();
82         }
83         System.out.println("生成xml文件成功!!!");
84     }
85 }

结果如图所示:

下面是用java解析上面所写的xml文件

简写版

 1 package com.direct.demo;
 2
 3 import java.io.IOException;
 4 import java.util.List;
 5
 6 import org.jdom.Document;
 7 import org.jdom.Element;
 8 import org.jdom.JDOMException;
 9 import org.jdom.input.SAXBuilder;
10
11 public class Saxxml {
12
13     public static void main(String[] args) {
14         //解析xml文档
15         SAXBuilder builder =  new SAXBuilder();
16         Document  docu = null;
17         try {
18             docu = builder.build("e:/io/stu.xml");
19         } catch (JDOMException e) {
20             e.printStackTrace();
21         } catch (IOException e) {
22             e.printStackTrace();
23         }
24
25          Element root = docu.getRootElement();//得到根目录
26          List stulist = root.getChildren();
27          System.out.println(stulist.size()+"-----------");
28          System.out.println("------------------读取xml文档的信息---------------------");
29         for (int i = 0; i < stulist.size(); i++) {
30             Element e = (Element) stulist.get(i);
31             String stuid;
32             String stuname ;
33             String stusex ;
34             String stuage;
35             if (i==0) {
36                  stuid = e.getChildText("stuid");
37                 stuname = e.getChildText("stuname");
38                 stusex = e.getChildText("stusex");
39                 stuage = e.getChildText("stuage");
40             }else {
41                 stuid = e.getChildText("stuid"+i);
42                 stuname = e.getChildText("stuname"+i);
43                 stusex = e.getChildText("stusex"+i);
44                  stuage = e.getChildText("stuage"+i);
45             }
46             System.out.println("属性:"+e.getAttributeValue("No"));
47             System.out.println("学号:"+stuid);
48             System.out.println("姓名:"+stuname);
49             System.out.println("年龄:"+stuage);
50             System.out.println("性别:"+stusex);
51             System.out.println("--------------------");
52         }
53     }
54 }
时间: 2024-10-16 20:37:57

java 生成和解析xml的相关文章

Java生成和解析XML格式文件和字符串的实例代码

1.基础知识:Java解析XML一般有四种方法:DOM.SAX.JDOM.DOM4J. 2.使用介绍1).DOM(1)简介 由W3C(org.w3c.dom)提供的接口,它将整个XML文档读入内存,构建一个DOM树来对各个节点(Node)进行操作.优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作:缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理. (2)示例代码: 1.基础知识:Java解析XML一般有四种方法:DOM.SAX.JDOM.DO

JDOM生成、解析XML实例

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import org.jdom.Attribute; import org.jdom.Comment; import org.jdom.Document; import org.jdom.Element; impo

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.

DOM4J生成、解析XML实例

import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Elemen

java使用dom4j解析xml

目标:将指定XML进行解析,以键=值的方式返回指定节点下的数据 所需要的jar包:dom4j1.6.1.jar.jaxen-1.1.jar <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://s

Java 使用 Dom4j 解析 XML 指南

Java 使用 Dom4j 解析 XML 指南 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 解析 XMLParsing XML 首先要做的事情之一就是,可能要解析某种类型的一个 XML 文档

java中dom解析xml

从xml文件中得到某个节点中value的值,条件是已知道某一个子节点的参数,如下一片段, 已知 <name> 为 “Motor hand”的值,想从整个xml文件中得到此子节点的<value>所对应的值. “<field><name>Motor hand</name><value>Right</value><type>Dotted</type></field>” 此方法是dom 遍历,获

利用Xstream注解生成和解析xml

实体类: @XStreamAlias("person") public class PersonBean {     @XStreamAlias("firstName")     private String firstName;     @XStreamAlias("lastName")     private String lastName;       @XStreamAlias("telphone")     priv

java Document生成和解析xml

转自:https://blog.csdn.net/p812438109/article/details/81807440 Document场景:需要知道文档所有结构 需要把文档一些元素排序 文档中的信息被多次使用的情况 优势:由于Document是java中自带的解析器,兼容性强 缺点:由于Document是一次性加载文档信息,如果文档太大,不太适用 Document操作步骤第一步:初始化xml解析工厂 DocumentBuilderFactory factory = DocumentBuild