龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java与XML(二)用Java编写XML的读写程序

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
这是读取XML文件的Java程序,我调试好的。采用的是dom方式读取xml文件到Vector中。 package src; import java.io.*; import java.util.Vector; import javax.xml.parsers.*; import org.w3c.dom.*; public class readxml { stat

  这是读取XML文件的Java程序,我调试好的。采用的是dom方式读取xml文件到Vector中。
  package src;
  import java.io.*;
  import java.util.Vector;
  import javax.xml.parsers.*;
  import org.w3c.dom.*;
  public class readxml {
   static Document document;
   private boolean validating;
   public readxml() {
   }
   public Vector toRead(String filename) {
   Vector title=new Vector();
   Vector content=new Vector();
   String myStr=new String();
   try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(validating);
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse(new File(filename));
    document.getDocumentElement().normalize();
    Node node = document.getFirstChild();
    NodeList list = node.getChildNodes();
    for (int i = 0; i < list.getLength(); i++) {
  Node nodeitm = list.item(i);
  if (nodeitm.getNodeName().equals("Title")) {
   myStr=nodeitm.getFirstChild().getNodeValue();
   title.addElement(myStr);//getFirstChild()
  }
  if (nodeitm.getNodeName().equals("Content")) {
   myStr=nodeitm.getFirstChild().getNodeValue();
   content.addElement(myStr);
  }
    }
   } catch (Exception eXP) {
    exp.printStackTrace();
    return null;
   }
   Vector all=new Vector();
   all.add(title);
   all.add(content);
   return all;
   }
  
   public static void main(String[] args) {
   Vector A;
   readxml my = new readxml();
   A = my.toRead("f: omcat5webappsmyxmlxmldata9.xml");
   for (int i = 0; i < A.size(); i++) {
    System.out.println(A.elementAt(i));
   }
   }
  }
  这是将xml写入文件。其中,transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312")关系到编码问题,非常重要。
  import org.w3c.dom.*;
  import javax.xml.parsers.*;
  import javax.xml.transform.*;
  import javax.xml.transform.dom.DOMSource;
  import javax.xml.transform.stream.StreamResult;
  import java.io.*;
  public class writexml {
   private Document document;
   private String filename;
  
   public writexml(String name) throws ParserConfigurationException{
   filename=name;
   DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
   DocumentBuilder builder=factory.newDocumentBuilder();
   document=builder.newDocument();
   }
   public void toWrite(String mytitle,String mycontent){
   Element root=document.createElement("WorkShop");
   document.appendChild(root);
   Element title=document.createElement("Title");
   title.appendChild(document.createTextNode(mytitle));
   root.appendChild(title);
   Element content=document.createElement("Content");
   content.appendChild(document.createTextNode(mycontent));
   root.appendChild(content);
   }
   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();
   }
   }
   public static void main(String args[]){
   try{
   writexml myxml=new writexml("f: omcat5webappsmyxmlxmldata9.xml");
   myxml.toWrite("中文题目","中文内容");
   myxml.toSave();
   System.out.print("Your writing is sUCcessful.");
   }
   catch(ParserConfigurationException exp){
    exp.printStackTrace();
    System.out.print("Your writing is failed.");
   }
   }
  }
  
精彩图集

赞助商链接