導航:首頁 > 編程語言 > java對象生成xml

java對象生成xml

發布時間:2022-09-03 11:55:49

java把任意對象序列化成XML文件

用JDK自帶的JAXB就行了,示例代碼自己搜索一下即可。

② Java 如何生成xml文件

寫文件的方法: FileWriter fw = new FileWriter("test.xml"); fw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?><dongguancyy><no.8><fhID=\"101null\"></fh></no.8></dongguancyy>"); fw.flush(); fw.close();

③ 使用java代碼建立xml 並使用代碼引用dtd,我想在建立過程中引用dtd,怎麼實現,求大神,幫忙。。

使用XStream完成java類與XML互換。下面代碼實現了以下4種基本功能:1.object類型轉換為xml類型,在控制台列印2.xml類型轉換為object類型,在控制台列印3.將object類型轉換為xml類型,並寫入XML文件4.讀取XML文件,載入進相應Object類型====================================================1。載入XStream需要的jar包xstream-1.4.2.jarxpp3_min-1.1.4c.jarxmlpull-1.1.3.1.jar2。創建實體類User.javapackagecom.entity;/***實體類*/publicclassUser{privateStringuserName;privateStringpassWord;privateStringregisteredTime;publicUser(){}publicUser(StringuserName,StringpassWord,StringregisteredTime){this.userName=userName;this.passWord=passWord;this.registeredTime=registeredTime;}publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetPassWord(){returnpassWord;}publicvoidsetPassWord(StringpassWord){this.passWord=passWord;}publicStringgetRegisteredTime(){returnregisteredTime;}publicvoidsetRegisteredTime(StringregisteredTime){this.registeredTime=registeredTime;}}3。編寫功能實現類packagecom.switcher;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.text.SimpleDateFormat;importjava.util.Date;importcom.entity.User;importcom.thoughtworks.xstream.XStream;/****使用XStream不用任何映射就能實現多數Java對象的序列化。*在生成的XML中對象名變成了元素名,類中的字元串組成了XML中的元素內容。*使用XStream序列化的類不需要實現Serializable介面。*XStream是一種序列化工具而不是數據綁定工具*不能從XML或者XMLSchemaDefinition(XSD)文件生成類。*/publicclassSwitchXML{/**XStream不關心序列化/逆序列化的類的欄位的可見性。*序列化/逆序列化類的欄位不需要getter和setter方法。*序列化/逆序列化的類不需要有默認構造函數。*/privateXStreamxStream=newXStream();privateStringxmlPath="D:/userdata.xml";//1.obj->xml(object類型轉換為xml類型)publicStringprintXML(Useruser){System.out.println("obj->xml");Stringxml=xStream.toXML(user);System.out.println(xml);returnxml;}//2.xml->obj(xml類型轉換為object類型,並列印)publicvoidprintObj(Stringxml){System.out.println("xml->obj");Useru=(User)xStream.fromXML(xml);System.out.println(u.getUserName()+""+u.getPassWord()+""+u.getRegisteredTime());}//3.將object類型轉換為xml類型,並寫入XML文件(其他格式也可以,比如txt文件)publicvoidwriterXML(Useruser){try{FileOutputStreamfs=newFileOutputStream(xmlPath);xStream.toXML(user,fs);}catch(FileNotFoundExceptione){e.printStackTrace();}}//4.讀取XML文件,載入進相應Object類型publicvoidreaderXML(){Useruser=newUser();FileInputStreamfis=null;try{fis=newFileInputStream(xmlPath);}catch(FileNotFoundExceptione){e.printStackTrace();}xStream.fromXML(fis,user);//列印對象信息System.out.println(user.toString());//列印對象的屬性值System.out.println(user.getUserName()+"-"+user.getPassWord()+"-"+user.getRegisteredTime());}publicstaticvoidmain(String[]args){//用戶名Stringusername="admin";//密碼Stringpassword="admin";//注冊時間Datenow=newDate();SimpleDateFormatformat=newSimpleDateFormat("yyyyMMddHHmmss");Stringregisteredtime=format.format(now);Useruser=newUser(username,password,registeredtime);SwitchXMLswitchXML=newSwitchXML();//1.object類型轉換為xml類型,在控制台列印Stringxml=switchXML.printXML(user);System.out.println("---------------------");//2.xml類型轉換為object類型,在控制台列印switchXML.printObj(xml);System.out.println("---------------------");//3.將object類型轉換為xml類型,並寫入XML文件switchXML.writerXML(user);System.out.println("---------------------");//4.讀取XML文件,載入進相應Object類型switchXML.readerXML();}}

④ XStream將java對象轉換為xml時,對象欄位中的下劃線「_」,轉換後變成了兩個

warning: [deprecation] XppDriver(com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer) in com.thoughtworks.xstream.io.xml.XppDriver has been deprecated

已經過時的方法,所以,不會調用此方法。

⑤ java對象如何轉換成xml

rt.jar就可以操作xml了,其次是dom4j,別的都沒有什麼名氣

⑥ 如何用java生成一個xml文件

一個XML文檔,可以先構造一個DOM,然後將DOM轉化為xml序列,輸出或者生成文件。package test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
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;

public class Test {

public static void generate(){
try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion("1.0");
document.setXmlStandalone(true);

Element root = document.createElement_x("MobileNet"); //創建根節點
document.appendChild(root); //將根節點添加到Document對象中

Element pageElement = document.createElement_x("page"); //設置第一個page元素到
pageElement.setAttribute("name", "list.jsp"); //設置page節點的name屬性

Element methodElement = document.createElement_x("method"); //設置method節點
methodElement.setTextContent("get"); //給method設置值
pageElement.appendChild(methodElement); //添加method節點到page節點內

Element displayElement = document.createElement_x("display"); //設置method節點
displayElement.setTextContent("list撒旦發放"); //給display設置值
pageElement.appendChild(displayElement); //添加display節點到page節點內

Element request_paramElement = document.createElement_x("request_param");
request_paramElement.setTextContent("request_param1|request_param2");
pageElement.appendChild(request_paramElement);

root.appendChild(pageElement);
pageElement = document.createElement_x("page"); //設置第二個page元素到
pageElement.setAttribute("name", "content.jsp"); //設置page節點的name屬性

methodElement = document.createElement_x("method");
methodElement.setTextContent("post");

pageElement.appendChild(methodElement);
displayElement = document.createElement_x("display");
displayElement.setTextContent("content");

pageElement.appendChild(displayElement);

Element url_titleElement = document.createElement_x("url_title"); //設置url_title節點
url_titleElement.setTextContent("title,publisher,published_calendar"); //給url_title設置值
pageElement.appendChild(url_titleElement); //添加url_title節點到page節點內

root.appendChild(pageElement); //將page段加人根節點內

TransformerFactory transFactory = TransformerFactory.newInstance(); //開始把Document映射到文件
Transformer transFormer = transFactory.newTransformer();

DOMSource domSource = new DOMSource(document); //設置輸出結果

File file = new File("MobileNetRule.xml"); //生成xml文件

if (!file.exists()) {
file.createNewFile();
}

FileOutputStream out = new FileOutputStream(file); //文件輸出流
StreamResult xmlResult = new StreamResult(out); //設置輸入源

transFormer.transform(domSource, xmlResult); //輸出xml文件
System.out.println(file.getAbsolutePath()); //測試文件輸出的路徑

TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty("{/encoding/}","GB2312/");
ByteArrayOutputStream boc = new ByteArrayOutputStream();
t.transform(new DOMSource(document), new StreamResult(boc));
String xmlstring = boc.toString();
System.out.println(xmlstring);

} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Test.generate();

}
}

⑦ 怎麼用java生成一個XML文件

樓主您好
可以直接用文件方式生成

更推薦,直接用xml生成,以dom方式為例(或者是sax),用jdom或者dom4j這種jar包

⑧ 用Java怎麼把String類型的字元串轉化為XML格式輸出

JXmlSerializable 是一個利用java反射,通過調用對象中所有以get(不區分大小寫)開頭的方法除去getClass方法,生成xml格式,希望與大家分享一下
下面是一個parent對象,包含兩個child對象 生成的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}

編譯出來還可以,能夠達到我的理想。

編譯結果是

1<?xml version="1.0"?>
2<xmlTest.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包,發現了兩個好東西,XMLEncoder和XMLDecoder。發現自己以前把從XML存取對象真是太費力氣啦。做了小工具類,以後可以用用了。
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文件存取可序列化的對象的類</title>
14 * <description>提供保存和讀取的方法</description>
15 * @author 殷晉
16 * <right>清華大學汽車工程開發研究院@2005</right>
17 * @version 1.0
18 * 2005-8-5 16:44:49
19 */
20public class ObjectToXMLUtil
21{
22 /** *//**
23 * 把java的可序列化的對象(實現Serializable介面)序列化保存到XML文件裡面,如果想一次保存多個可序列化對象請用集合進行封裝
24 * 保存時將會用現在的對象原來的XML文件內容
25 * @param obj 要序列化的可序列化的對象
26 * @param fileName 帶完全的保存路徑的文件名
27 * @throws FileNotFoundException 指定位置的文件不存在
28 * @throws IOException 輸出時發生異常
29 * @throws Exception 其他運行時異常
30 */
31 public static void objectXmlEncoder(Object obj,String fileName)
32 throws FileNotFoundException,IOException,Exception
33 {
34 //創建輸出文件
35 File fo = new File(fileName);
36 //文件不存在,就創建該文件
37 if(!fo.exists())
38 {
39 //先創建文件的目錄
40 String path = fileName.substring(0,fileName.lastIndexOf('.'));
41 File pFile = new File(path);
42 pFile.mkdirs();
43 }
44 //創建文件輸出流
45 FileOutputStream fos = new FileOutputStream(fo);
46 //創建XML文件對象輸出類實例
47 XMLEncoder encoder = new XMLEncoder(fos);
48 //對象序列化輸出到XML文件
49 encoder.writeObject(obj);
50 encoder.flush();
51 //關閉序列化工具
52 encoder.close();
53 //關閉輸出流
54 fos.close();
55 }
56 /** *//**
57 * 讀取由objSource指定的XML文件中的序列化保存的對象,返回的結果經過了List封裝
58 * @param objSource 帶全部文件路徑的文件全名
59 * @return 由XML文件裡面保存的對象構成的List列表(可能是一個或者多個的序列化保存的對象)
60 * @throws FileNotFoundException 指定的對象讀取資源不存在
61 * @throws IOException 讀取發生錯誤
62 * @throws Exception 其他運行時異常發生
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當然用Beans.instantiate也可以從文件中反序列化初對象

⑨ 如何用java語言生成xml文件,並將它返回

實例:
holen.xml

<?xml version="1.0" encoding="UTF-8"?>

<books>

<!--This is a test for dom4j, holen, 2004.9.11-->

<book show="yes">

<title>Dom4j Tutorials</title>

</book>

<book show="yes">

<title>Lucene Studing</title>

</book>

<book show="no">

<title>Lucene in Action</title>

</book>

<owner>O'Reilly</owner>

</books>

建立一個XML文檔:

/**

* 建立一個XML文檔,文檔名由輸入屬性決定

* @param filename 需建立的文件名

* @return 返回操作結果, 0表失敗, 1表成功

*/

public int createXMLFile(String filename){

/** 返回操作結果, 0表失敗, 1表成功 */

int returnValue = 0;

/** 建立document對象 */

Document document = DocumentHelper.createDocument();

/** 建立XML文檔的根books */

Element booksElement = document.addElement("books");

/** 加入一行注釋 */

booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");

/** 加入第一個book節點 */

Element bookElement = booksElement.addElement("book");

/** 加入show屬性內容 */

bookElement.addAttribute("show","yes");

/** 加入title節點 */

Element titleElement = bookElement.addElement("title");

/** 為title設置內容 */

titleElement.setText("Dom4j Tutorials");

/** 類似的完成後兩個book */

bookElement = booksElement.addElement("book");

bookElement.addAttribute("show","yes");

titleElement = bookElement.addElement("title");

titleElement.setText("Lucene Studing");

bookElement = booksElement.addElement("book");

bookElement.addAttribute("show","no");

titleElement = bookElement.addElement("title");

titleElement.setText("Lucene in Action");

/** 加入owner節點 */

Element ownerElement = booksElement.addElement("owner");

ownerElement.setText("O'Reilly");

try{

/** 將document中的內容寫入文件中 */

XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));

writer.write(document);

writer.close();

/** 執行成功,需返回1 */

returnValue = 1;

}catch(Exception ex){

ex.printStackTrace();

}

return returnValue;

}

說明:

Document document = DocumentHelper.createDocument();

通過這句定義一個XML文檔對象。

Element booksElement = document.addElement("books");

通過這句定義一個XML元素,這里添加的是根節點。

Element有幾個重要的方法:

l addComment:添加註釋

l addAttribute:添加屬性

l addElement:添加子元素

⑩ 如何用java生成一個XML文件,並且將該文件壓

package com.test.io;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class CreateXmlFile {

private static final String XML_TITLE = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

private static final String FILE_PATH = "d:";

private static final String FILE_SPE = "/";

private static final String CHANGE_LINES = "\n";

private static final String FILE_NAME = "text.xml";

public static void main(String[] args) {
String xml = appendStr();
try {
File file = createXmlFile(FILE_PATH + FILE_SPE + FILE_NAME);
writeDoc(file, xml);
System.out.println("文件已經創建:");
System.out.println("目錄:" + FILE_PATH + FILE_SPE + FILE_NAME);
System.out.println("文件內容為:");
System.out.println(xml);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 組裝XML內容
* @return
*/
private static String appendStr(){
StringBuffer sb = new StringBuffer();
sb.append(XML_TITLE).append(CHANGE_LINES);
sb.append("<book>").append(CHANGE_LINES);
sb.append("<name>").append(CHANGE_LINES);
sb.append("《好玩》").append(CHANGE_LINES);
sb.append("</name>").append(CHANGE_LINES);
sb.append("</book>").append(CHANGE_LINES);
return sb.toString();
}

/**
* 將內容寫入文件
* @param file
* @param str
*/
private static void writeDoc(File file,String str){
OutputStream out = null;
try {
out = new FileOutputStream(file);
out.write(str.getBytes());
}catch(Exception ex){
//
ex.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

/**
* 創建文件
* @param path
* @return
* @throws IOException
*/
private static File createXmlFile(String path) throws IOException{
File file = new File(path);
if(!file.exists()){
file.createNewFile();
}
return file;
}
}

閱讀全文

與java對象生成xml相關的資料

熱點內容
游俠下載的游戲都需要解壓沒 瀏覽:81
初次認識控制命令完整版 瀏覽:255
雙屏程序員 瀏覽:799
怎麼把兩個文件夾放到一個文件夾裡面 瀏覽:545
命令與征服大神宮 瀏覽:207
php發送簡訊驗證碼 瀏覽:505
前端伺服器如何接收http請求 瀏覽:796
程序員資質查詢 瀏覽:357
程序員被別人開除怎麼辦 瀏覽:888
解壓視頻看一下 瀏覽:129
android仿知乎日報 瀏覽:335
為什麼前端比安卓手機需求大 瀏覽:855
命令行執行關機命令 瀏覽:52
在學校心情不好怎麼解壓 瀏覽:116
我的世界基岩版伺服器怎麼讀取 瀏覽:161
快件命令 瀏覽:853
阿里雲06折伺服器能用嗎 瀏覽:421
h5個人中心源碼 瀏覽:221
下三角矩陣的壓縮存儲 瀏覽:922
招人用什麼app好用 瀏覽:722