java xml文件头_java dom生成xml文件,为什么只生成头部申明

package java_xml.dom_test;

import java.io.File;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerConfigurationException;

import javax.xml.transform.TransformerException;

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 DomXmlCreate {

private List bookList=new ArrayList();

/**

* 向bookList添加Book对象;

*/

public void bookListAdd(){

Book book1=new Book("1","鬼吹灯","天下霸唱",2000,90.0,"中文");

Book book2=new Book("2","Go with Wind","CPN",2000,90.0,"English");

Book[] bookArray={book1,book2};

bookList.addAll(Arrays.asList(bookArray));

// for (Book book : bookList) {

// System.out.println(book);

// }

}

/**

* 将bookList中的对象导入生成Xml文件的方法

*/

public void CreateXML(){

//创建document对象

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();

try {

DocumentBuilder db=dbf.newDocumentBuilder();

Document document=db.newDocument();

//向document添加根节点

Element bookStore=document.createElement("bookStore");

document.setXmlStandalone(true);

bookStore.setAttribute("id", "1");

//使用循环将bookList中的book对象通过创建节点弄进去document对象

for(Book a:bookList){

Element book=document.createElement("book");

book.setAttribute("id", a.getId());

bookStore.appendChild(book);

Element name=document.createElement("name");

name.setTextContent(a.getName());

book.appendChild(name);

Element author=document.createElement("author");

author.setTextContent(a.getAuthor());

book.appendChild(author);

Element year=document.createElement("year");

year.setTextContent(Integer.toString(a.getYear()));

book.appendChild(year);

Element price=document.createElement("price");

price.setTextContent(Double.toString(a.getPrice()));

book.appendChild(price);

Element language=document.createElement("language");

language.setTextContent(a.getLanguage());//创建book及其所有子节点

book.appendChild(language);

}

//将document对象进行输出xml文件

TransformerFactory tfF=TransformerFactory.newInstance();

Transformer tf=tfF.newTransformer();

//tf.setOutputProperty(OutputKeys.INDENT,"yes");

tf.transform(new DOMSource(document), new StreamResult(new File("src/java_xml/dom_test/bookTest.xml")));

} catch (TransformerConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}catch (TransformerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

DomXmlCreate d1=new DomXmlCreate();

d1.bookListAdd();

d1.CreateXML();

}

}

90af32685106ac225a78af85d90b93dd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值