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