2./**
1. * desciption:java create xml file
2. * author:maomao
3. * datetime:2007/04/04 23:42
4. */
5.
6.package com.xh.xml;
1.
2.import java.io.FileOutputStream;
1.import java.io.IOException;
1.import org.jdom.Document;
1.import org.jdom.Element;
1.import org.jdom.JDOMException;
1.import org.jdom.output.XMLOutputter;
1.
2.public class Java2XML {
1.
2. public void BuildXMLDoc() throws IOException, JDOMException {
3.
4. // 創建根節點 list;
5. Element root = new Element("list");
6.
7. // 根節點添加到文檔中;
8. Document Doc = new Document(root);
9.
10. // 此處 for 循環可替換成 遍歷 資料庫表的結果集操作;
11. for (int i = 0; i < 5; i++) {
12.
13. // 創建節點 user;
14. Element elements = new Element("user");
15.
16. // 給 user 節點添加屬性 id;
17. elements.setAttribute("id", "" + i);
18.
19. // 給 user 節點添加子節點並賦值;
20. // new Element("name")中的 "name" 替換成表中相應欄位,setText("xuehui")中 "xuehui 替換成表中記錄值;
21. elements.addContent(new Element("name").setText("xuehui"));
22. elements.addContent(new Element("age").setText("28"));
23. elements.addContent(new Element("sex").setText("Male"));
24.
25. // 給父節點list添加user子節點;
26. root.addContent(elements);
27.
28. }
29. XMLOutputter XMLOut = new XMLOutputter();
30.
31. // 輸出 user.xml 文件;
32. XMLOut.output(Doc, new FileOutputStream("user.xml"));
33. }
34.
35. public static void main(String[] args) {
36. try {
37. Java2XML j2x = new Java2XML();
38. System.out.println("生成 mxl 文件...");
39. j2x.BuildXMLDoc();
40. } catch (Exception e) {
41. e.printStackTrace();
42. }
43. }
44.
45.}
生成結果:
# <?xml version="1.0" encoding="UTF-8"?>
# <list>
# <user id="0">
# <name>xuehui</name>
# <age>28</age>
# <sex>Male</sex>
# </user>
# <user id="1">
# <name>xuehui</name>
# <age>28</age>
# <sex>Male</sex>
# </user>
# <user id="2">
# <name>xuehui</name>
# <age>28</age>
# <sex>Male</sex>
# </user>
# <user id="3">
# <name>xuehui</name>
# <age>28</age>
# <sex>Male</sex>
# </user>
# <user id="4">
# <name>xuehui</name>
# <age>28</age>
# <sex>Male</sex>
# </user>
# </list>
你可以參考一下鏈接,然後拷貝代碼,這里我直接拷貝帶上行號。
② java 怎麼將數據動態的寫入xml
只是數據動態寫入xml,如果是不求Schema,只要保存為XML即可,
那不用寫了,JDK中有,這樣做:
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream( ( (
OutputStream) (new FileOutputStream(filename)))));
encoder.writeObject(list);
encoder.close();
③ 大家好,請教Java高手,Java生成xml文件
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.swing.JOptionPane;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Test20 {
public static void main(String[] args) throws Exception {
Document dom=DocumentHelper.createDocument();//創建xml文件
Element root=dom.addElement("url");//添加根元素,Xval
Element data=root.addElement("data");
data.setText("淘寶");
Element licence=root.addElement("Licence");
licence.setText("免費軟體");
String xml=dom.asXML();
System.out.println(xml);
File f=new File("d:/xml.xml");
PrintWriter pw=new PrintWriter(f);
pw.write(xml);
pw.close();
JOptionPane.showMessageDialog(null, "已生成xml文件,路徑為為d:/xml.xml");
}
}
用的是dom4j,見附件,
Have Fun
④ 如何用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文件,並且將該文件壓縮成ZIP格式後再寫到硬碟上
在你聲明ZipEntry的時候在name後加上.xml後綴就可以了!!!
實例如下:
public static void main(String[] arg) throws Exception{
String xml;
/*
* 生成你的xml數據,存在String xml中。
*/
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D://test.zip"));
//聲明ZipOutputStream,用來輸出zip文件。
ZipEntry entry = new ZipEntry("test.xml");
//聲明ZipEntry
zipOut.putNextEntry(entry);
//將entry加入到zipOut中。
DataOutputStream dataOs = new DataOutputStream(zipOut);
//利用DataOutputStream對ZipOutputStream進行包裝。
dataOs.writeUTF(gd);
//輸出zip文件。
dataOs.close();
}
運行後,在D盤里就有一個test.zip文件,里包含的就是一個test.xml文件了。
⑥ 如何用java代碼創建xml文件
用java自帶的就可以,有問題可以問我
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
//構造
public XMLUtil(String name) throws ParserConfigurationException {
filename = name;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
document = builder.newDocument();
}
/**
* 保存到文件
*/
public void toSave() {
try {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
} catch (TransformerException mye) {
mye.printStackTrace();
} catch (IOException exp) {
exp.printStackTrace();。
⑦ JAVA 生成xml格式,具體格式如下,請問JAVA方法怎麼寫
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importorg.w3c.dom.*;
importorg.xml.sax.SAXException;
importjavax.xml.parsers.*;
importjavax.xml.transform.*;
importjavax.xml.transform.dom.DOMSource;
importjavax.xml.transform.stream.*;
importjavax.xml.xpath.*;
publicclassTest{
publicstaticvoidmain(String[]args){
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
ElementtheBook=null,theElem=null,root=null;
try{
factory.(true);
DocumentBuilderdb=factory.newDocumentBuilder();
Documentxmldoc=db.parse(newFile("Test1.xml"));
root=xmldoc.getDocumentElement();
theBook=(Element)selectSingleNode("/books/book[name='哈里波特']",root);
System.out.println("---查詢找《哈里波特》----");
ElementnameNode=(Element)theBook.getElementsByTagName("price").item(0);
Stringname=nameNode.getFirstChild().getNodeValue();
System.out.println(name);
output(theBook);
System.out.println("=============selectSingleNode(books/book[name='哈里波特'],root)==================");
//---新建一本書開始----
theBook=xmldoc.createElement("book");
theElem=xmldoc.createElement("name");
theElem.setTextContent("新書");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("price");
theElem.setTextContent("20");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("memo");
theElem.setTextContent("新書的更好看。");
theBook.appendChild(theElem);
root.appendChild(theBook);
System.out.println("---新建一本書開始----");
output(xmldoc);
System.out.println("==============================");
//---新建一本書完成----
//---下面對《哈里波特》做一些修改。----
//---查詢找《哈里波特》----
//---此時修改這本書的價格-----
theBook.getElementsByTagName("price").item(0).setTextContent("15");//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相當於xpath的".//price"。
System.out.println("---此時修改這本書的價格----");
output(theBook);
//---另外還想加一個屬性id,值為B01----
theBook.setAttribute("id","B01");
System.out.println("---另外還想加一個屬性id,值為B01----");
output(theBook);
//---對《哈里波特》修改完成。----
//---要用id屬性刪除《三國演義》這本書----
theBook=(Element)selectSingleNode("/books/book[@id='B02']",root);
System.out.println("---要用id屬性刪除《三國演義》這本書----");
output(theBook);
theBook.getParentNode().removeChild(theBook);
System.out.println("---刪除後的XML----");
output(xmldoc);
//---再將所有價格低於10的書刪除----
NodeListsomeBooks=selectNodes("/books/book[price<10]",root);
System.out.println("---再將所有價格低於10的書刪除---");
System.out.println("---符合條件的書有"+someBooks.getLength()+"本。---");
for(inti=0;i<someBooks.getLength();i++){
someBooks.item(i).getParentNode().removeChild(someBooks.item(i));
}
output(xmldoc);
saveXml("Test1_Edited.xml",xmldoc);
}catch(ParserConfigurationExceptione){
e.printStackTrace();
}catch(SAXExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidoutput(Nodenode){//將node的XML字元串輸出到控制台
=TransformerFactory.newInstance();
try{
Transformertransformer=transFactory.newTransformer();
transformer.setOutputProperty("encoding","gb2312");
transformer.setOutputProperty("indent","yes");
DOMSourcesource=newDOMSource();
source.setNode(node);
StreamResultresult=newStreamResult();
result.setOutputStream(System.out);
transformer.transform(source,result);
}catch(){
e.printStackTrace();
}catch(TransformerExceptione){
e.printStackTrace();
}
}
(Stringexpress,Objectsource){//查找節點,並返回第一個符合條件節點
Noderesult=null;
XPathFactoryxpathFactory=XPathFactory.newInstance();
XPathxpath=xpathFactory.newXPath();
try{
result=(Node)xpath.evaluate(express,source,XPathConstants.NODE);
}catch(XPathExpressionExceptione){
e.printStackTrace();
}
returnresult;
}
(Stringexpress,Objectsource){//查找節點,返回符合條件的節點集。
NodeListresult=null;
XPathFactoryxpathFactory=XPathFactory.newInstance();
XPathxpath=xpathFactory.newXPath();
try{
result=(NodeList)xpath.evaluate(express,source,XPathConstants.NODESET);
}catch(XPathExpressionExceptione){
e.printStackTrace();
}
returnresult;
}
publicstaticvoidsaveXml(StringfileName,Documentdoc){//將Document輸出到文件
=TransformerFactory.newInstance();
try{
Transformertransformer=transFactory.newTransformer();
transformer.setOutputProperty("indent","yes");
DOMSourcesource=newDOMSource();
source.setNode(doc);
StreamResultresult=newStreamResult();
result.setOutputStream(newFileOutputStream(fileName));
transformer.transform(source,result);
}catch(){
e.printStackTrace();
}catch(TransformerExceptione){
e.printStackTrace();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}
}
}
XML:
<?xmlversion="1.0"encoding="GBK"?>
<books>
<book>
<name>哈里波特</name>
<price>10</price>
<memo>這是一本很好看的書。</memo>
</book>
<bookid="B02">
<name>三國演義</name>
<price>10</price>
<memo>四大名著之一。</memo>
</book>
<bookid="B03">
<name>水滸</name>
<price>6</price>
<memo>四大名著之一。</memo>
</book>
<bookid="B04">
<name>紅樓</name>
<price>5</price>
<memo>四大名著之一。</memo>
</book>
</books>
⑧ jsp Form->Java Bean ->使用XStream->生成XML文件
[代碼]1.實體類:PersonBean
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicit;
@XStreamAlias("person")
public class PersonBean {
@XStreamAlias("firstName")
private String firstName;
@XStreamAlias("lastName")
private String lastName;
@XStreamAlias("telphone")
private PhoneNumber tel;
@XStreamAlias("faxphone")
private PhoneNumber fax;
//省略setter和getter }
main函數示例1:toxml
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JsonWriter.Format; import com.thoughtworks.xstream.io.xml.DomDriver;
public class PersonTest {
public static void main(String[] args) {
PersonBean per=new PersonBean();
per.setFirstName("chen");
per.setLastName("youlong");
PhoneNumber tel=new PhoneNumber();
tel.setCode(137280);
tel.setNumber("137280968");
PhoneNumber fax=new PhoneNumber();
fax.setCode(20);
fax.setNumber("020221327");
per.setTel(tel);
per.setFax(fax);
//java對象轉換成xml
String xml=XmlUtil.toXml(per);
System.out.println("xml==="+xml);
}
}
main函數示例2:toBean
public static void main(String[] args) {
String xmlStr="<person>"+
"<firstName>chen</firstName>"+
"<lastName>youlong</lastName>"+
"<telphone>"+
"<code>137280</code>"+
"<number>137280968</number>"+
"</telphone>"+
"<faxphone>"+
"<code>20</code>"+
"<number>020221327</number>"+
"</faxphone>"+
"<friends>"+
"<name>A1</name>"+
"<name>A2</name>"+
"<name>A3</name>"+
"</friends>"+
"<pets>"+
"<pet>"+
"<name>doly</name>"+
"<age>2</age>"+
"</pet>"+
"<pet>"+
"<name>Ketty</name>"+
"<age>2</age>"+
"</pet>"+
"</pets>"+
"</person>"; //用泛型的知識
PersonBean person=XmlUtil.toBean(xmlStr, PersonBean.class);
System.out.println("person=firstname=="+person.getFirstName());
System.out.println("person==Friends==name1=="+person.getFriend().getName().get(0));
System.out.println("person==Pets==name2=="+person.getPet().getAnimalList().get(1).getName());
}
⑨ 用Java怎麼把String類型的字元串轉化為XML格式輸出
java中將string轉換成文件,使用開源jar包 dom4j:
packagecom.webdesk.swing.powertable.util;
importjava.io.ByteArrayInputStream;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.SAXReader;
importorg.dom4j.io.XMLWriter;
publicclassXmlUtil{
(StringfileName){
try{
SAXReadersaxReader=newSAXReader();//新建一個解析類
DocumenttempDocument=saxReader.read(XmlUtil.class.getClassLoader().getResourceAsStream(fileName));//讀入一個文件
returntempDocument.asXML();
}catch(DocumentExceptione){
e.printStackTrace();
}
returnnull;
}
//將字元串string類型轉換成xml文件
publicstaticvoidstrChangeXML(Stringstr)throwsIOException{
SAXReadersaxReader=newSAXReader();
Documentdocument;
try{
document=saxReader.read(newByteArrayInputStream(str.getBytes("UTF-8")));
OutputFormatformat=OutputFormat.createPrettyPrint();
/**將document中的內容寫入文件中*/
XMLWriterwriter=newXMLWriter(newFileWriter(newFile("src/com/webdesk/swing/powertable/digester/cctv.xml")),format);
writer.write(document);
writer.close();
}catch(DocumentExceptione){
e.printStackTrace();
}
}
}
⑩ java生成大型XML文件,有什麼好方法
如果是解析XML文檔,XML文件大可以用SAX方式解析。
如果是生成XML文檔,那麼可以用拼字元串的方式,一邊拼串一邊寫入文件。而不是在內存將整個XML樹生成後再寫入文件。