Java+XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Books>
 <book id="1">
  <bookName>Java</bookName>
  <bookISBN>9-88-56123</bookISBN>
  <bookPrice>28.00</bookPrice>
 </book>
 
 <book id="2">
  <bookName>SQL</bookName>
  <bookISBN>9-66-56123</bookISBN>
  <bookPrice>20.00</bookPrice>
 </book>
</Books>

 

 

 

 

import java.io.File;

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;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


public class DomXML {
 //DocumentBuildFactory:定义解析器工厂
 DocumentBuilderFactory factory = null;
 //创建解析器
 DocumentBuilder builder = null;
 //将XML文档传递给解析器
 Document doc = null;
 //获得根结点
 Element et = null;
 //获得子结点
 NodeList books = null;
 
 public DomXML() throws Exception
 {
  factory = DocumentBuilderFactory.newInstance();
  builder = factory.newDocumentBuilder();
  doc = builder.parse("book.xml");
  doc.normalize();
  et = doc.getDocumentElement();
  books = et.getElementsByTagName("book");
 }
 //输出XML文档内容
 public void showXML()
 {
  System.out.println(et.getNodeName() + "\n");
  for(int i = 0;i < books.getLength(); i++)
  {
   Node n = books.item(i);
   NodeList bookList = n.getChildNodes();
   for(int j = 0;j < bookList.getLength(); j++)
   {
    if(bookList.item(j).getNodeType() == Node.ELEMENT_NODE)
    {
     System.out.println(bookList.item(j).getFirstChild().getTextContent());
    }
   }
   System.out.println();
  }
 }
 //写入XML文档
 public void writeXML() throws Exception
 {
  Element book = doc.createElement("book");
  book.setAttribute("id","3");
  Element bookName = doc.createElement("bookName");
  Element bookISBN = doc.createElement("bookISBN");
  Element bookPrice = doc.createElement("bookPrice");
  
  bookName.setTextContent(".net");
  bookISBN.setTextContent("123456789");
  bookPrice.setTextContent("11");
  
  doc.getDocumentElement().appendChild(book);
  book.appendChild(bookName);
  book.appendChild(bookISBN);
  book.appendChild(bookPrice);
  
  //写入XML
  TransformerFactory tf = TransformerFactory.newInstance();
  Transformer f = tf.newTransformer();
  f.transform(new DOMSource(doc), new StreamResult(new File("book.xml")));
 }
 
 public static void main(String[] args) throws Exception {
  // TODO 自动生成方法存根
  DomXML dom = new DomXML();
  dom.showXML();
  dom.writeXML();
  dom.showXML();
 }
}

 

posted @ 2009-12-27 03:19  kanjc  阅读(265)  评论(0编辑  收藏  举报