这是读取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
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 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.");} }}