Chinaunix首页 | 论坛 | 博客
  • 博客访问: 500479
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:30:46


  这是读取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:\\tomcat5\\webapps\\myxml\\xmldata\\9.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:\\tomcat5\\webapps\\myxml\\xmldata\\9.xml");
   myxml.toWrite("中文题目","中文内容");
   myxml.toSave();
   System.out.print("Your writing is successful.");
   }
   catch(ParserConfigurationException exp){
    exp.printStackTrace();
    System.out.print("Your writing is failed.");
   }
   }
  }
【责编:admin】
--------------------next---------------------

阅读(85) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~