真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼轉(zhuǎn)xml代碼 java 轉(zhuǎn)xml

java xml編程強(qiáng)制轉(zhuǎn)換

使用XStream完成 java 類與 XML 互換。

元寶山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,元寶山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為元寶山上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的元寶山做網(wǎng)站的公司定做!

下面代碼實(shí)現(xiàn)了以下4種基本功能:

1. object類型轉(zhuǎn)換為鄭中xml類型,在控制臺(tái)打印

2. xml類型轉(zhuǎn)換為object類型,在控制臺(tái)打印

3. 將object類型轉(zhuǎn)換為xml類型,并寫入XML文件

4. 讀取XML文件,加載進(jìn)相應(yīng)Object類型

====================================================

1。加載 XStream 需要的jar包 xstream-1.4.2.jar

xpp3_min-1.1.4c.jar

xmlpull-1.1.3.1.jar

2。創(chuàng)建實(shí)體類User.java

package com.entity;

/**

* 實(shí)雹戚體類

*/

public class User {

private String userName;

private String passWord;

private String registeredTime;

public User() { }

public User(String userName, String passWord, String registeredTime) {

this.userName = userName;

this.passWord = passWord;

this.registeredTime = registeredTime;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassWord() {

return passWord;

}

public void setPassWord(String passWord) {

this.passWord = passWord;

}

public String getRegisteredTime() {

return registeredTime;

}

public void setRegisteredTime(String registeredTime) {

this.registeredTime = registeredTime;

}

}

3。編寫功能實(shí)現(xiàn)類

package com.switcher;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import com.entity.User;

import com.thoughtworks.xstream.XStream;

/**

*

* 使用 XStream不用任何映射就能實(shí)現(xiàn)多數(shù) Java 對(duì)象的序列化。

* 在生成的 XML中對(duì)象名變成了元素名,類中的字符串組成了 XML中的元素內(nèi)容。

* 使用 XStream 序列化的類不喊肆山需要實(shí)現(xiàn) Serializable 接口。

* XStream 是一種序列化工具而不是數(shù)據(jù)綁定工具

* 不能從XML 或者 XML Schema Definition (XSD) 文件生成類。

*/

public class SwitchXML {

/*

* XStream 不關(guān)心序列化/逆序列化的類的字段的可見性。

* 序列化/逆序列化類的字段不需要 getter 和 setter 方法。

* 序列化/逆序列化的類不需要有默認(rèn)構(gòu)造函數(shù)。

*/

private XStream xStream = new XStream();

private String xmlPath = "D:/userdata.xml";

// 1. obj - xml(object類型轉(zhuǎn)換為xml類型)

public String printXML(User user) {

System.out.println("obj - xml");

String xml = xStream.toXML(user);

System.out.println(xml);

return xml;

}

// 2. xml-obj(xml類型轉(zhuǎn)換為object類型,并打印)

public void printObj(String xml) {

System.out.println("xml - obj");

User u = (User) xStream.fromXML(xml);

System.out.println(u.getUserName() + " " + u.getPassWord() + " " + u.getRegisteredTime());

}

// 3. 將object類型轉(zhuǎn)換為xml類型,并寫入XML文件(其他格式也可以,比如txt文件)

public void writerXML(User user) {

try {

FileOutputStream fs = new FileOutputStream(xmlPath);

xStream.toXML(user, fs);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

// 4. 讀取XML文件,加載進(jìn)相應(yīng)Object類型

public void readerXML() {

User user = new User();

FileInputStream fis = null;

try {

fis = new FileInputStream(xmlPath);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

xStream.fromXML(fis, user);

// 打印對(duì)象信息

System.out.println(user.toString());

// 打印對(duì)象的屬性值

System.out.println(user.getUserName() + "-" + user.getPassWord() + "-"

+ user.getRegisteredTime());

}

public static void main(String[] args) {

// 用戶名

String username = "admin";

// 密碼

String password = "admin";

// 注冊(cè)時(shí)間

Date now = new Date();

SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");

String registeredtime = format.format(now);

User user = new User(username, password, registeredtime);

SwitchXML switchXML = new SwitchXML();

// 1. object類型轉(zhuǎn)換為xml類型,在控制臺(tái)打印

String xml = switchXML.printXML(user);

System.out.println("---------------------");

// 2. xml類型轉(zhuǎn)換為object類型,在控制臺(tái)打印

switchXML.printObj(xml);

System.out.println("---------------------");

// 3. 將object類型轉(zhuǎn)換為xml類型,并寫入XML文件

switchXML.writerXML(user);

System.out.println("---------------------");

// 4. 讀取XML文件,加載進(jìn)相應(yīng)Object類型

switchXML.readerXML();

}

Java中object和xml互相轉(zhuǎn)換

import java.beans.XMLDecoder;

import java.beans.XMLEncoder;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

public class Object2XML {

public static String object2XML(Object obj, String outFileName)

throws FileNotFoundException {

// 構(gòu)造輸出XML文件的字節(jié)輸出流

File outFile = new File(outFileName);

BufferedOutputStream bos = new BufferedOutputStream(

new FileOutputStream(outFile));

// 構(gòu)造一個(gè)XML編碼器

XMLEncoder xmlEncoder = new XMLEncoder(bos);

// 使用XML編碼器寫對(duì)象

xmlEncoder.writeObject(obj);

// 關(guān)閉編碼器

xmlEncoder.close();

return outFile.getAbsolutePath();

}

public static Object xml2Object(String inFileName)

throws FileNotFoundException {

// 構(gòu)造輸入的XML文件的字節(jié)者信姿輸入流

BufferedInputStream bis = new BufferedInputStream(

new FileInputStream(inFileName));

// 構(gòu)造一個(gè)XML解碼器

XMLDecoder xmlDecoder = new XMLDecoder(bis);

// 使用坦首XML解碼器讀對(duì)象

Object obj = xmlDecoder.readObject();

// 關(guān)閉解碼器

xmlDecoder.close();

return obj;

}

public static void main(String[] args) throws IOException {

// 構(gòu)造一個(gè)StudentBean對(duì)象

StudentBean student = new StudentBean();

student.setName("wamgwu");

student.setGender("male");

student.setAge(15);

student.setPhone("55556666");

// 將StudentBean對(duì)象寫到首絕XML文件

String fileName = "AStudent.xml";

Object2XML.object2XML(student, fileName);

// 從XML文件讀StudentBean對(duì)象

StudentBean aStudent = (StudentBean)Object2XML.xml2Object(fileName);

// 輸出讀到的對(duì)象

System.out.println(aStudent.toString());

}

}

java對(duì)象如何轉(zhuǎn)換成xml

rt.jar?就可以操作xml了,其次是dom4j,別的都沒有什遲穗弊么名碼族氣族掘

用Java怎么把String類型的字符串轉(zhuǎn)化為XML格式輸出?

JXmlSerializable 是一個(gè)利用java反射,通過(guò)調(diào)用對(duì)象中所有以get(不區(qū)分大小寫)開頭的方法除去getClass方法羨好,生成xml格式,希望與大家分享一下

下面是一個(gè)parent對(duì)象,包槐伏含兩個(gè)child對(duì)象 生成的xml如下

Child類

1package xmlTest;

2

3import java.io.FileNotFoundException;

4import java.io.IOException;

5import java.io.PrintWriter;

6import java.lang.reflect.InvocationTargetException;

7public class Child extends JXmlSerializable {

8

9 private String _name;

10 private String _sex;

11 private int age;

12

13 public void setAge(int num) {

14 age = num;

15 }

16

17 public int getAge() {

18 return age;

19 }

20

21 public void setName(String name) {

22 _name = name;

23 }

24

25 public void setSex(String sex) {

26 _sex = sex;

27 }

28

29 public String getName() {

30 return _name;

31 }

32

33 public String getSex() {

34 return _sex;

35 }

36

37}

38

Parent類鉛派攜 1package xmlTest;

2

3import java.io.PrintWriter;

4import java.lang.reflect.Array;

5import java.util.*;

6

7public class Parent extends JXmlSerializable {

8

9 private String _name;

10 private String _sex;

11 private LinkedList list = new LinkedList();

12 private Vector vec = new Vector();

13 int age;

14

15 public void setAge(int num) {

16 age = num;

17 }

18

19 public int getAge() {

20 return age;

21 }

22

23 public void setName(String name) {

24 _name = name;

25 }

26

27 public void setSex(String sex) {

28 _sex = sex;

29 }

30

31 public String getName() {

32 return _name;

33 }

34

35 public String getSex() {

36 return _sex;

37 }

38

39 public void addChild(Child child) {

40 list.add(child);

41 vec.add(child);

42 }

43

44 public Child[] getChild() {

45

46 Child[] aa = new Child[vec.size()];

47 // list.toArray(aa);

48 vec.toArray(aa);

49 return aa;

50 }

51

52 public static void main(String[] args) {

53 // TODO Auto-generated method stub

54 try {

55 Parent pat = new Parent();

56 pat.setName("jack");

57 pat.setSex("male");

58 Child child1 = new Child();

59 child1.setName("tom");

60 child1.setSex("male");

61 pat.addChild(child1);

62 Child child2 = new Child();

63 child2.setName("Marie");

64 child2.setSex("female");

65 pat.addChild(child2);

66 pat.getChild();

67 PrintWriter out = new PrintWriter("abc.xml");

68 pat.toXmlSerial(out,0);

69 out.flush();

70

71 } catch (Exception e) {

72 e.printStackTrace();

73 }

74

75 }

76}

類 JXmlSerializable

1package xmlTest;

2

3import java.lang.reflect.Method;

4import java.lang.reflect.InvocationTargetException;

5import java.lang.reflect.Array;

6import java.io.PrintWriter;

7import java.io.IOException;

8public class JXmlSerializable {

9

10 public void toXmlSerial(PrintWriter out, int num)

11 throws InvocationTargetException, IllegalAccessException,

12 IOException {

13 out.write("?xml version="1.0"? ");

14 String head = "";

15 for (int i = 0; i num; i++) {

16 head += " ";

17 }

18 out.write(head + "" + this.getClass().getName() + " ");

19 Method[] methods = this.getClass().getMethods();

20 for (int i = 0; i methods.length; i++) {

21 Class[] paras = methods[i].getParameterTypes();

22 String name = methods[i].getName();

23 if (paras == null || paras.length == 0) {

24 if ((name.substring(0, 3).toLowerCase().equals("get"))

25 !name.equals("getClass")) {

26 Object obj = methods[i].invoke(this, null);

27 getMethodXmlSerial(out, obj, methods[i], num);

28 }

29 }

30 }

31

32 out.write(head + "/" + this.getClass().getName() + " ");

33

34 }

35

36 private void getMethodXmlSerial(PrintWriter out, Object obj, Method method,

37 int num) throws InvocationTargetException, IllegalAccessException,

38 IOException {

39 if (obj == null)

40 return;

41 String head = "";

42 for (int i = 0; i = num; i++) {

43 head += " ";

44 }

45 if (obj.getClass().isArray()) {

46 for (int i = 0; i Array.getLength(obj); i++) {

47 Object childobj = Array.get(obj, i);

48 if (childobj instanceof JXmlSerializable) {

49 ((JXmlSerializable) childobj).toXmlSerial(out, num + 1);

50 } else {

51 getMethodXmlSerial(out, childobj, method, num);

52 }

53 }

54 } else {

55 out.write(head + " " + method.getName().substring(3) + " ");

56 out.write(obj.toString());

57 out.write(" /" + method.getName().substring(3) + " ");

58 }

59

60 }

61}

編譯出來(lái)還可以,能夠達(dá)到我的理想。

編譯結(jié)果是

1?xml version="1.0"?

2xmlTest.Parent

3 Name jack /Name

4 Age 0 /Age

5 Sex male /Sex

6?xml version="1.0"?

7 xmlTest.Child

8 Name tom /Name

9 Age 0 /Age

10 Sex male /Sex

11 /xmlTest.Child

12?xml version="1.0"?

13 xmlTest.Child

14 Name Marie /Name

15 Age 0 /Age

16 Sex female /Sex

17 /xmlTest.Child

18/xmlTest.Parent

今天看了看java.beans包,發(fā)現(xiàn)了兩個(gè)好東西,XMLEncoder和XMLDecoder。發(fā)現(xiàn)自己以前把從XML存取對(duì)象真是太費(fèi)力氣啦。做了小工具類,以后可以用用了。

1以下是引用片段:

2package com.imct.util;

3import java.beans.XMLDecoder;

4import java.beans.XMLEncoder;

5import java.io.File;

6import java.io.FileInputStream;

7import java.io.FileNotFoundException;

8import java.io.FileOutputStream;

9import java.io.IOException;

10import java.util.ArrayList;

11import java.util.List;

12/** *//**

13 * title使用XML文件存取可序列化的對(duì)象的類/title

14 * description提供保存和讀取的方法/description

15 * @author 殷晉

16 * copyright清華大學(xué)汽車工程開發(fā)研究院@2005/copyright

17 * @version 1.0

18 * 2005-8-5 16:44:49

19 */

20public class ObjectToXMLUtil

21{

22 /** *//**

23 * 把java的可序列化的對(duì)象(實(shí)現(xiàn)Serializable接口)序列化保存到XML文件里面,如果想一次保存多個(gè)可序列化對(duì)象請(qǐng)用集合進(jìn)行封裝

24 * 保存時(shí)將會(huì)用現(xiàn)在的對(duì)象原來(lái)的XML文件內(nèi)容

25 * @param obj 要序列化的可序列化的對(duì)象

26 * @param fileName 帶完全的保存路徑的文件名

27 * @throws FileNotFoundException 指定位置的文件不存在

28 * @throws IOException 輸出時(shí)發(fā)生異常

29 * @throws Exception 其他運(yùn)行時(shí)異常

30 */

31 public static void objectXmlEncoder(Object obj,String fileName)

32 throws FileNotFoundException,IOException,Exception

33 {

34 //創(chuàng)建輸出文件

35 File fo = new File(fileName);

36 //文件不存在,就創(chuàng)建該文件

37 if(!fo.exists())

38 {

39 //先創(chuàng)建文件的目錄

40 String path = fileName.substring(0,fileName.lastIndexOf('.'));

41 File pFile = new File(path);

42 pFile.mkdirs();

43 }

44 //創(chuàng)建文件輸出流

45 FileOutputStream fos = new FileOutputStream(fo);

46 //創(chuàng)建XML文件對(duì)象輸出類實(shí)例

47 XMLEncoder encoder = new XMLEncoder(fos);

48 //對(duì)象序列化輸出到XML文件

49 encoder.writeObject(obj);

50 encoder.flush();

51 //關(guān)閉序列化工具

52 encoder.close();

53 //關(guān)閉輸出流

54 fos.close();

55 }

56 /** *//**

57 * 讀取由objSource指定的XML文件中的序列化保存的對(duì)象,返回的結(jié)果經(jīng)過(guò)了List封裝

58 * @param objSource 帶全部文件路徑的文件全名

59 * @return 由XML文件里面保存的對(duì)象構(gòu)成的List列表(可能是一個(gè)或者多個(gè)的序列化保存的對(duì)象)

60 * @throws FileNotFoundException 指定的對(duì)象讀取資源不存在

61 * @throws IOException 讀取發(fā)生錯(cuò)誤

62 * @throws Exception 其他運(yùn)行時(shí)異常發(fā)生

63 */

64 public static List objectXmlDecoder(String objSource)

65 throws FileNotFoundException,IOException,Exception

66 {

67 List objList = new ArrayList();

68 File fin = new File(objSource);

69 FileInputStream fis = new FileInputStream(fin);

70 XMLDecoder decoder = new XMLDecoder(fis);

71 Object obj = null;

72 try

73 {

74 while( (obj = decoder.readObject()) != null)

75 {

76 objList.add(obj);

77 }

78 }

79 catch (Exception e)

80 {

81 // TODO Auto-generated catch block

82 }

83 fis.close();

84 decoder.close();

85 return objList;

86 }

87}

88

89

90當(dāng)然用Beans.instantiate也可以從文件中反序列化初對(duì)象


當(dāng)前名稱:java代碼轉(zhuǎn)xml代碼 java 轉(zhuǎn)xml
轉(zhuǎn)載注明:http://weahome.cn/article/ddpjdds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部